当前位置:编程学习 > VB >>

求对txt文本分段读取,分段输出源代码

Open V For Binary As #1
  M = 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 ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,