Entwickler-Ecke

IO, XML und Registry - Textdatei einlesen und anders ausgeben


DarkSu - Sa 11.05.13 12:08
Titel: Textdatei einlesen und anders ausgeben
Hallo zusammen ..

Ich habe hier ein Textfile mit Daten in einer einzigen Zeile, die aber ein festes Muster hat. Wie könnte ich es anstellen dieses File quasi NEU aber Zeilenorientiert zu schreiben. Das ganze müsste alle 34 Bytes umbrechen, also mit einem CR/LF versehen werden.

Vielleicht könnte mir da jemand so unter die Arme greifen das ich es verstehe.

Habe mit IO Operationen so gut wie noch nichts gemacht, sorry !

Gruß DarkSu


Th69 - Sa 11.05.13 13:25

Hallo DarkSu,

das geht ziemlich einfach, s. z.B. Gewusst wie: Zeilenweises Lesen einer Textdatei [http://msdn.microsoft.com/de-de/library/vstudio/94223t4d.aspx].
Einzig anstatt ReadLine müßtest du dann die Read-Methode aufrufen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
const int count = 34;
char[] buffer = new char[count]; // edited ;-)
int read;

StreamReader inputfile = new StreamReader("inputfile.txt");
StreamWriter outputfile = new StreamWriter("outputfile.txt");

while ((read = inputfile.Read(buffer, 0, count)) > 0)
{
  // und wieder in neue Datei (+Zeilenumbruch) zurückschreiben
  outputfile.WriteLine(buffer, 0, read);
}

(ob das so kompiliert und funktioniert müßtest du dann mal debuggen...)

P.S. Hier noch der MSDN-Link zu weiteren "Gewusst wie - E/A Aufgaben": Allgemeine E/A-Aufgaben [http://msdn.microsoft.com/de-de/library/vstudio/ms404278.aspx]

Edit: Variable read hinzugefügt, um auch die letzte Zeile korrekt zu speichern


DarkSu - Sa 11.05.13 14:51

Hallo Th69 ..

Vielen Dank für deinen Beitrag .. Hat mir sehr geholfen !!!
Ein Fehler hat sich eingeschlichen der aber nicht wild war. :-)

Soll:

C#-Quelltext
1:
char[] buffer = new char[count];                    


Gruß DarkSu

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt