Eine Textdatei mit Sätzen parsen
-
Hallo,
ich habe vor eine Textdatei die ich mit dem ifstream im binärformat öffne zu parsen. Ich möchte also zählen wie viele Wörter, Sätze, Absätze und Buchstaben in der Datei sind. Soweit so gut. Mein Problem ist nun eher das, das ich nicht die ganze datei auf einmal in den speicher laden möchte. ich hab mir das gedacht das ich das mit einem buffer machen könnte. das klappt auch soweit, ich möchte jedoch am Zeilenende das ganze in den Buffer schreiben. Und wie jeder weiß ist unter Windows das Zeilenende bzw der Absatz bestehend aus \r\n also 2 byte. ich lese das ganze mit read binary ein in den stream, wie kann ich jetzt prüfen ob das ende der zeile erreicht wurden ist? oder soll ich jeweils 2 byte einlesen? wie würdet ihr das ganze machen?
ich bin noch neu in dateien und brauche euren ratschlag. ich möchte es so effizient wie es geht gestalten.
vielen dank für eure hilfe
gruß
sebastian
-
Hallo
Warum liest du überhaupt binär ein? Lies doch Textorientiert ein, dann kannst du mit std::getline ganz einfach Zeile für Zeile abarbeiten.
Im Binärmodus wird normalerweise nur nach festen Bereichen eingelesen, z.B. 1024 Bytes. Dann kann man sich auch die interne Speicherverwaltung sehr einfach mit einem festen Array machen.
Wenn du wirklich darauf bestehst binär zeilenweise einzulesen must du eben Byte für Byte in den Buffer schreiben bis du die Zeilenende-Bytes erwischt hast.bis bald
akari