我知道的有两种方法 1先添加引用:Microsoft Scripting Runtime 代码: Dim fso As FileSystemObject Dim ts As TextStream Dim str As String Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FileExists("C:\test.txt") Then Exit Sub Set ts = fso.OpenTextFile(str) Do While Not ts.AtEndOfStream str = ts.ReadLine '处理Str loop
1.读文本到text1中 Open "D:\新闻集团\Monthly Report\industry.txt" For Input As #1 While Not EOF(1) Line Input #1, txt Text1.Text = Text1.Text & vbCrLf & txt Wend Close #1 2。写文本到文件 txt=text1.text Open "D:\新闻集团\Monthly Report\industry1.txt" For output As #1 print #1, txt Close #1
1.读文本到text1中 Open "D:\新闻集团\Monthly Report\industry.txt" For Input As #1 While Not EOF(1) Line Input #1, txt Text1.Text = Text1.Text & vbCrLf & txt Wend Close #1 2。写文本到文件 txt=text1.text Open "D:\新闻集团\Monthly Report\industry1.txt" For output As #1 print #1, txt Close #1
2dim str as string Open "c;\test.txt" For Input as #1 While not eof(1) line input #1,str '处理str Loop
1.用FileSystemObject对象来处理. 2.用Open\While语句来读写文本文件
打开文本文件各种方法打开文本文件是不少程序必须处理的问题。如何更有效地打开文本文件应该是一个值得研究的课题。为此,笔者将自己搜集到的几种方法无私地奉献出来(-_-),供各位参考。同时期盼大家也来参与,借VB编程乐园这块宝地互相交流。如您有这份心,土人在这里先说声谢谢! 下面所举的例子均假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。方法一: 用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取: Private Sub Command1_Cliack() Dim sA As String * 65400 '声明定长String变量 Open "F:\d.txt" For Binary As #1 '用二进制打开文件 Get #1, , sA '用Get语句从文件中获取字节 Text1 = sA '显示打开的文件 Close #1 '关闭文件 End Sub方法二: 先声明一字符串变量,然后用空格填充字符串,使变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K的文件,下例用RichTextBox控件显示打开的文件: Private Sub Command1_Click() Dim sA As String Open "f:\d.txt" For Binary As #1 sA = Space(LOF(1)) '用空格填充sA变量 Get #1, , sA '用Get语句获取文件全部内容 RichTextBox1.Text = sA Close #1 End Sub方法三: 用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子: Private Sub Command1_Click() Open "f:\d.txt" For Input As #1 RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode) Close #1 End Sub方法四: 用Shell语句直接调出Windows的记事本,给个文件名即可轻而易举地打开文本文件。此法适合于打开程序的Readme文件(注意:在可执行文件和要打开的文本文件之间要有空格): Shell "NotePad.EXE f:\d.txt",vbNormalFucus方法五: 用RichTextBox控件自身的LoadFile属性打开文件: RichTextBox1.LoadFile "f:\d.txt", rtfText
1先添加引用:Microsoft Scripting Runtime
代码:
Dim fso As FileSystemObject
Dim ts As TextStream
Dim str As String
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists("C:\test.txt") Then Exit Sub
Set ts = fso.OpenTextFile(str)
Do While Not ts.AtEndOfStream
str = ts.ReadLine
'处理Str
loop
或者用API函数.什么函数我忘记了,不过肯定有,因为我用过.
Open "D:\新闻集团\Monthly Report\industry.txt" For Input As #1
While Not EOF(1)
Line Input #1, txt
Text1.Text = Text1.Text & vbCrLf & txt
Wend
Close #1
2。写文本到文件
txt=text1.text
Open "D:\新闻集团\Monthly Report\industry1.txt" For output As #1
print #1, txt
Close #1
Open "D:\新闻集团\Monthly Report\industry.txt" For Input As #1
While Not EOF(1)
Line Input #1, txt
Text1.Text = Text1.Text & vbCrLf & txt
Wend
Close #1
2。写文本到文件
txt=text1.text
Open "D:\新闻集团\Monthly Report\industry1.txt" For output As #1
print #1, txt
Close #1
Open "c;\test.txt" For Input as #1
While not eof(1)
line input #1,str
'处理str
Loop
2.用Open\While语句来读写文本文件
下面所举的例子均假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。方法一:
用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取:
Private Sub Command1_Cliack()
Dim sA As String * 65400 '声明定长String变量
Open "F:\d.txt" For Binary As #1 '用二进制打开文件
Get #1, , sA '用Get语句从文件中获取字节
Text1 = sA '显示打开的文件
Close #1 '关闭文件
End Sub方法二:
先声明一字符串变量,然后用空格填充字符串,使变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K的文件,下例用RichTextBox控件显示打开的文件:
Private Sub Command1_Click()
Dim sA As String
Open "f:\d.txt" For Binary As #1
sA = Space(LOF(1)) '用空格填充sA变量
Get #1, , sA '用Get语句获取文件全部内容
RichTextBox1.Text = sA
Close #1
End Sub方法三:
用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子:
Private Sub Command1_Click()
Open "f:\d.txt" For Input As #1
RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)
Close #1
End Sub方法四:
用Shell语句直接调出Windows的记事本,给个文件名即可轻而易举地打开文本文件。此法适合于打开程序的Readme文件(注意:在可执行文件和要打开的文本文件之间要有空格):
Shell "NotePad.EXE f:\d.txt",vbNormalFucus方法五:
用RichTextBox控件自身的LoadFile属性打开文件:
RichTextBox1.LoadFile "f:\d.txt", rtfText