Announcement

Collapse
No announcement yet.

Datei Rückwärts einlesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei Rückwärts einlesen

    Hallo Zusammen

    ich muss jeweils die letzte Zeile einer Datei einlesen und parsen. Ich erwarte dabei, dass die Datei mit der Zeit recht gross wird, und möchte deshalb die datei rückwärts einlesen, das heisst die letzte zeile zuerst.

    ich habe mit "ifstream" angeschaut, dort komme ich aber nicht weiter da ich mit getline nur forwärts navigieren kann.

    gibt es eine möglichkeit vom Schluss der Datei her durch die zeilen zu navigieren, ohne erst das ganze, grosse file in einen Vector zu laden? Beispielsweise schwebt mir das folgende vor:
    1. auslesen wieviele Zeilen die Datei hat
    2. gezielt eine zeile auslesen




    Gruss
    Claudio
    Zuletzt editiert von c.gr; 18.10.2007, 12:13.

  • #2
    Sie die einzelnen Zeilen in der Datei gleich lang kann du anhand der Dateigröße berechnen, wo die letzte Zeile beginnt.

    Sind sie das nicht, muss du halt Byte für Byte rückwärts lesen. Dazu wird der Dateizeiger entsprechend gesetzt -> Sitchwort seekg

    http://www.cplusplus.com/reference/i...eam/seekg.html


    1. auslesen wieviele Zeilen die Datei hat
    Man kann nicht auslesen, wiewiele Zeilen eine Datei hat

    2. gezielt eine zeile auslesen
    Nur wenn man weiss wie Groß die Datei ist, UND ALLE ZEILEN GLEICH LANG SIND

    Beispiel:

    Datei ist 100 Byte groß
    jede Zeile umfasst 10 Byte

    Wieviele Zeilen? ;-)
    Christian

    Comment


    • #3
      Allerdings stellt sich die Frage, warum du nicht die TStringListklasse benutzt.....

      TStringList *zeilen=new TStringList();
      zeilen->LoadFromFile("c:\\datei.txt");

      nun hast du alle Zeilen in der Liste. Über Count bekommst du die Anzahl der Zeilen, über zeilen->String[x] kannst du auf jede einzelne zugreifen

      delete zeilen;
      Zuletzt editiert von Christian Marquardt; 18.10.2007, 15:09.
      Christian

      Comment


      • #4
        Vielen dank für die schnelle Beantwortung. Das mit der Stringlist werde ich mir genauer anschauen...
        Lieber gruss

        Claudio

        Comment

        Working...
        X