2017-06-02 1 views
1

Ich versuche, die letzte ^ und Zeilenvorschub am Ende einer Datei zu entfernen. Dieser Code funktioniert hervorragend für kleine Dateien, aber nicht für sehr große. Ich überlegte, die Datei in Blöcken zu lesen oder vielleicht nur die letzte Portion, aber ich bin mir nicht sicher, wie ich das machen soll.Wie schneidet man den letzten Teil einer großen Textdatei ab

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

Könnte versuchen, 'StreamReader' Class zu verwenden, um die Datei einzulesen, da dies nicht die gesamte Datei im Speicher hält –

+0

Diese Website könnte Ihnen helfen: [Wie lese ich die letzten Zeilen einer Datei in 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? forum = vbgeneral) –

Antwort

1

Lesen Sie die gesamte Datei in Blöcken, schrittweise alle Daten in eine zweite temporäre Datei zu schreiben (mit Ausnahme der letzten beiden Zeichen, natürlich) wird Ihre beste Wette. Wenn Sie eine verwenden, ist es möglich, eine bestimmte Position zu suchen und einzelne Bytes zu überschreiben. Dies funktioniert jedoch nur, wenn Sie die Daten mit neuen Daten gleicher Länge überschreiben. Das funktioniert nicht, wenn Sie abschneiden.

Verwandte Themen