open filename for input as filenum
do until eof (filenum)
line input filenum.varstr 'varstr是一个string变量
text1.text=text1.text&chr(13)&(chr13)&varstr
loop
close filenum
方法一:
用定长的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
Public Sub ReplaceString(ByVal SeachStr As String, ByVal ReplaceStr As String, ByVal TxtFile As String)
Dim strTmp As String
Dim bytT() As Byte
Dim lFileLen As Long
lFileLen = FileLen(TxtFile)
ReDim bytT(1 To lFileLen)
Open TxtFile For Binary Access Read Write As #1
Get #1, , bytT
Close #1
strTmp = StrConv(bytT, vbUnicode)
strTmp = Replace(strTmp, SeachStr, ReplaceStr)
bytT = StrConv(strTmp, vbFromUnicode)
Open TxtFile For Binary Access Read Write As #1
Put #1, , bytT
Close #1
End Sub