Mittwoch, 30. Dezember 2009

Selbst zu faul? Textdateien lesen mit C#

Kleines Schmankerl am Rande: Die Variablen in C# "leben" aufgrund Ihrer Deklaration innerhalb der While-Schleife auch nur innerhalb der While-Schleife - und das nur für einen Durchlauf. Solch eine Variable blickt neidisch auf jede Eintagsfliege. Im richtigen Leben sollte die Bearbeitung etwas dauerhafter erfolgen, aber es soll uns ja nur als einfaches Beispiel dienen.

Natürlich gehen wir nicht davon aus, dass jemand tatsächlich selbst zu faul zum Lesen ist, aber es gibt dennoch genügend Situationen in denen wir das Auslesen von Textdateien einem Programm überlassen wollen.

Da niemand erwarten würde einfach "liesDatei(xy.txt)" schreiben schreiben zu können, müssen wir einen Filestream öffnen und über diesen Filestream mit einem angelegten Streamreader die Textdatei auslesen.

FileStream fs = new FileStream(@"D:\Text.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader r = new StreamReader(fs, System.Text.Encoding.Default);

// Zeiger auf den Anfang
r.BaseStream.Seek(0, SeekOrigin.Begin);
    while (r.Peek() > -1)
    {
        string zeile, information;
        zeile = r.ReadLine();
        information = zeile.Substring(2, 8);
    };
r.Close();
fs.Close();

Besondere Magie stellt die Angabe "System.Text.Encoding.Default". Ohne sie werden Umlaute und Sonderzeichen nicht korrekt weitergegeben.

Kleines Schmankerl am Rande: Die Variablen in C# "leben" aufgrund Ihrer Deklaration innerhalb der While-Schleife auch nur innerhalb der While-Schleife - und das nur für einen Durchlauf. Solch eine Variable blickt neidisch auf jede Eintagsfliege.
Im richtigen Leben sollte die Bearbeitung etwas dauerhafter erfolgen, aber es soll uns ja nur als einfaches Beispiel dienen.

Keine Kommentare:

Kommentar veröffentlichen