VB读取文件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:16:47
我为读取文件制作了进度条
首先利用FileLen()得到文件大小
然后一行一行的读取文件,每读一行算一次这行的长度。
最后整个文件都存在了 WholeFile 变量里。
然而,进度条到一半就停了!

我试着把 WholeFile 显示到一个文本框里,结果显示不全,但更奇怪的是用
print #2,WholeFile
输出出来的文件居然是完整的……

这是怎么回事?
我要是想在文本框里显示整个文件并让进度条正常起作用该怎么做?

我输入文件用的代码:
------------------------------------------------
Public Sub readfile(ByVal FileLocation As String)
ProgressBar1.Max = FileLen(FileLocation)
Dim InputStr As String, WholeFile As String
Open FileLocation For Input As #1
Do While Not EOF(1)
Line Input #1, InputStr
DoEvents
WholeFile = WholeFile & InputStr & vbCrLf
ProgressBar1.Value = ProgressBar1.Value + Len(InputStr)
s = s + 1
Loop
Close #1
End Sub

然后在按钮CLICK中引用

进度条到一半就停了,这个一点也不奇怪,filelen是文件的字节总数,一个汉字是两个字节,而处理时用len,是统计的字符个数,一个汉字就是一个字符,所以要改用LenB来统计字节个数

文本框里,结果显示不全,文本框能处理的最大长度为65535个字符(粘贴进去的除外),读入的文本长度比这个长,肯定会显示不全的,这个要显示全,自己酌情添加文本框吧

Public Sub readfile(ByVal FileLocation As String)
With ProgressBar1
.Max = FileLen(FileLocation)
.Min = 0
.Value = 0
End With
Dim InputStr As String, WholeFile As String
Open FileLocation For Input As #1
Do While Not EOF(1)
Line Input #1, InputStr
DoEvents
WholeFile = WholeFile & InputStr & vbCrLf
ProgressBar1.Value = LenB(StrConv(WholeFile, vbFromUnicode))
Loop
Close #1
Text1 = WholeFile
End Sub

Private Sub Command1_Click()
readfile "d:\小说.txt"
MsgBox "OK!"
End Sub

Private Sub Command1_Click()
readfile "z:\1.txt"
End Sub

Public Sub readfile(ByVal FileLocation As String)
ProgressBar1.Max = FileLen(FileL