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文本分段讀取輸出需要怎么改
uj5u.com熱心網友回復:
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
uj5u.com熱心網友回復:
謝謝 你的代碼,讀取文本和輸出文本實作了,但是分段讀取后,造成每段文本檔案中最后一行字串由一行變成了兩行,使下一步字串處理無法正常進行,輸出結果
<p name="AdjsCI">12133<
/p>
這個原先應該是 <p name="AdjsCI">12133</p>
有什么辦法么?
uj5u.com熱心網友回復:
這個的解決方法是,后面 Print #2, M 那兒,把 M 后面加個分號。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/134043.html
標籤:VB基礎類
上一篇:行集合不能作為標簽
下一篇:關于access資料重繪后丟失
