求对txt文本分段读取,分段输出源代码
Open V For Binary As #1M = Space(LOF(1))
Get #1, , M
Close #1
M = Replace(M, vbCrLf, vbLf) '将 回车符+换行符 替换成 换行符,防止误操作
M = Replace(M, vbCr, vbLf) '将 回车符 替换成 换行符
M = Replace(M, vbLf, vbCrLf) '将 换行符 替换成 回车符+换行符
Kill V
Open V For Binary As #1
Put #1, , M
Close #1
这段代码当txt文本大于50M时 M = Space(LOF(1))
代码字符串溢出,有高手解释需要对文本分段处理,我从来没做过,请教高人这段代码对txt文本分段读取输出需要怎么改
Dim n As Long, M As string, tmp As String
Open V For Binary As #1
Open U For Output As #2
n = LOF(1)
Do While n
If n > 1024 Then
M = Space(1024)
n = n - 1024
Else
M = Space(n)
n = 0
End If
Get #1, , M
M = tmp & M
If Not EOF(1) And Right(M, 1) = vbCr Then
tmp = vbCR
M = Left(M, Len(M) - 1)
Else
tmp = ""
End If
M = Replace(M, vbCrLf, vbLf) '将 回车符+换行符 替换成 换行符,防止误操作
M = Replace(M, vbCr, vbLf) '将 回车符 替换成 换行符
M = Replace(M, vbLf, vbCrLf) '将 换行符 替换成 回车符+换行符
Print #2, M
Loop
Close #2
Close #1
Kill V
Rename U, V
谢谢 你的代码,读取文本和输出文本实现了,但是分段读取后,造成每段文本文件中最后一行字符串由一行变成了两行,使下一步字符串处理无易做图常进行,
输出结果
<p name="AdjsCI">12133<
/p>
这个原先应该是 <p name="AdjsCI">12133</p>
有什么办法么? 这个的解决方法是,后面 Print #2, M 那儿,把 M 后面加个分号。
补充:VB , 基础类