vb如何读取txt中内容

就是VB一句命令,读取一个TXT里面的信息?简单些
2024-12-02 16:29:42
推荐回答(5个)
回答(1):

用API函数获得用户文件夹,这个我不晓得,我只会用获取的用户名来做...

下面的代码,我并没有限制用户桌面上的TXT文件必须为“新建 文本文档.txt”,也就是满足文件里有字符串“1234”的TXT文件,就删除。你可以自己调整一下,这样就不需要FileListBox控件了,如果只是针对你自己的电脑,这样连API函数也不需要用上了,直接自己把文件夹路径附上去。

在窗体上添加一个Timer控件,一个FileListBox控件,Timer1.Interval=2000,File1.Pattern="*.txt",File1.Visible=False,添加代码如下:

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Dim UserName As String, UserPath As String

Private Sub Form_Load()
'获取当前用户名
Dim s As String * 255

Call GetUserName(s, 255)

'提取出用户名来
Dim i As Integer
For i = 1 To 255
'由于s长度为255,所以其中有一部分字符是无效字符(或者说是用于表征字符结束)
If Asc(Mid(s, i, 1)) < 32 Then
UserName = Left(s, i - 1)
Exit For
End If
Next i

'设置用户文件夹
'并不是所有用户文件夹都是这样的路径,所以这行代码没有普遍性
UserPath = "C:\Documents and Settings\" & UserName & "\桌面\"

'获取满足条件的文件
File1.Path = UserPath
File1.Refresh
End Sub

Private Sub Timer1_Timer()
'获取满足条件的文件
File1.Refresh

'循环
For i = 0 To File1.ListCount - 1

'判断文件是否有符合条件的字符串
If CheckTxt(UserPath & File1.List(i)) Then

'删除文件
Kill UserPath & File1.List(i)
End If
Next i
End Sub

Private Function CheckTxt(Filepath As String) As Boolean
Dim Fnum As Integer, s As String, s1 As String

'读取出文件里面的内容
Fnum = FreeFile
Open Filepath For Input As #Fnum
Do Until EOF(Fnum)
Line Input #Fnum, s1
s = s & s1 & vbCrLf
Loop
Close #Fnum

'判断文件是否有符合条件的字符串
If InStr(s, "1234") > 0 Then CheckTxt = True
End Function

回答(2):

Open "文件绝对路径" for INput as #1
'接下来比如我要把文件读入文本框Text1
Input #1, Text1.Text
Close #1

也可以用FSO,但是不可能一句命令就行的

回答(3):

读取:
Dim StringA As String
Open "(此处输入txt路径)" For Input As #1
Input #1, StringA
Close #1
Text1.Text = StringA
写入:
Open "(此处输入txt路径)" For Output As #1
Input #1, Text1.Text
Close #1

Holihand原创,yzhiyu_123的不行,我试过了。

回答(4):

楼上的还是写漏了一点,我的最全
Dim A As String
Open "(此处输入txt路径+文件名)" For Input As #1
Input #1, A
Close #1
Text1.Text = A

回答(5):

一二三楼的回答只能读一行。
用FSO:
Dim n As Object
Set n = CreateObject("Scripting.FileSystemObject").OpenTextFile(CommonDialog1.FileName, 1) 'ForReading = 1, ForWriting = 2, ForAppending = 8
Text1.Text = n.ReadAll
n.Close