TFileStream zeilenweise lesen?



  • Ich möchte eine sehr große Datei, welche UTF8 ist, zeilenweise einlesen.
    Mit string habe ich früher getline(fout,buffer,'\n'); verwendet.
    Gibt es so etwas für VCL? IN TFileStream fand ich bisher nicht die Möglichkeit.



  • Hallo,

    TStringList(::Lines)

    LG



  • Danke, aber mit dieser Info kann ich leider nichts anfangen. Meine Doku kennt kein Lines in TStringList, sondern nur Strings[] zum ansprechen der "Lines". Das hat aber wieder nichts mit meinem Problem zu tun. Es geht ja wie erwähnt um sehr grosse Dateien, die ich nicht komplett laden will, sondern zeilenweise auswerten. So das sich im Speicher immer nur 1 Zeile befindet, welche man auswertet.



  • Hallo,

    was heißt "sehr große Dateien"? TStringList macht mit den Dateien auch nichts anderes als sie in den Speicher laden. Durch TStringList::Strings (sry für den Fehler) kann man sie dann Zeilenweise auslesen? Das wäre die gesuchte VCL-Verfahrensweise...

    LG



  • Hallo

    Oder um es so zu sagen : Für TStream gibt es kein eingebautes zeilenweisen Lesen wie bei std::stream, denn dafür würde man normalerweise TStringList verwenden. Wenn du das für TStreams haben willst, must du es selber implementieren, auf Basis des normalen zeichenweisen Einlesens, bis ein Zeilenumbruch kommt. Etwas anderes macht std::getline auch nicht.

    bis bald
    akari



  • @RandomAccess85
    Die Dateien wären mehrere Gigabyte groß.

    @akari
    Danke. Dann muss ich ja nicht weiter suchen. 🙂


Anmelden zum Antworten