Entfernen der ersten Zeile einer Textdatei in C #

8

Ich kann momentan die letzte Zeile einer Textdatei entfernen mit:

%Vor%

Wie ist es jedoch möglich, stattdessen den Anfang der Textdatei zu entfernen?

    
Johnathan Middleton 10.08.2011, 09:26
quelle

4 Antworten

8

Anstelle von lines.Take können Sie stattdessen lines.Skip like:

verwenden %Vor%

am Anfang abgeschnitten, obwohl die Technik (alles Text lesen und alles zurück schreiben) sehr ineffizient ist.

Über den effizienten Weg: Die Ineffizienz kommt von der Notwendigkeit, die ganze Datei in den Speicher zu lesen. Andersherum könnte es einfach sein, in einem Stream zu suchen und den Stream in eine andere Ausgabedatei zu kopieren, das Original zu löschen und das alte umzubenennen. Dieser wäre genauso schnell und verbraucht dennoch viel weniger Speicher.

Das Abschneiden einer Datei am Ende ist viel einfacher. Sie können nur die Trunction-Position finden und FileStream.SetLength() aufrufen.

    
Sedat Kapanoglu 10.08.2011, 09:27
quelle
4
%Vor%

Skip eliminiert die angegebene Anzahl von Elementen vom Anfang der Sequenz. Take eliminiert alle außer der angegebenen Anzahl von Elementen aus dem Ende der Sequenz.

    
Anders Abel 10.08.2011 09:28
quelle
4

Hier ist eine Alternative:

%Vor%

Aktualisieren

Wenn Sie IEnumerable<string> benötigen und keinen Speicher verschwenden möchten, können Sie Folgendes tun:

%Vor%     
jgauffin 10.08.2011 09:38
quelle
0

Um die erste Zeile aus einer Textdatei zu entfernen

%Vor%     
Martin 30.01.2013 07:54
quelle

Tags und Links