2017-06-02 45 views
1

我試圖去掉文件末尾的最後一個^和換行符。此代碼適用於小文件,但不適用於非常大的文件。我正在考慮以大塊或最後一部分閱讀文件,但我不知道如何做到這一點。如何截斷大文本文件的最後部分

Dim text As String 
Dim intLength As Integer 
Dim strEnd As String 

text = File.ReadAllText(pstrOutputFolder & "tblzTF2FORMS_" & pstrFormType & ".txt") 
intLength = Len(text) 
strEnd = Right(text, 2) 
If strEnd = "^" & vbLf & "" Then 
    intLength = intLength - 2 
    text = Left(text, intLength) 
    File.WriteAllText(pstrOutputFolder & "tblzTF2FORMS_" & pstrFormType & ".txt", text) 
End If 
+0

可以嘗試使用'StreamReader'類來讀取文件,因爲這將不會保留整個文件在內存中 –

+0

本網站可能會幫助你:[如何讀取VB中文件的最後幾行](https: //social.msdn.microsoft.com/Forums/vstudio/en-US/59b8bc31-878d-4111-aa03-8abaab2a41e5/how-to-read-the-last-few-lines-of-a-file-in- VB?論壇= vbgeneral) –

回答

1

讀成塊整個文件,逐步寫的所有數據到第二臨時文件(除了最後兩個字符,當然)將是你最好的選擇。當您使用FileStream時,可以尋找一個給定的位置,然後覆蓋單個字節,但只有在用相同長度的新數據覆蓋數據時纔有效。當你截斷時,這不起作用。