dateipositionszeiger



  • hallo,

    ich springe mit hilfe von seekg() in der ersten zeile einer txt-datei an eine gewünschte position und lese ein paar zeichen aus(mit hilfe von get()). danach will ich zum anfang der 2.zeile springen. die länge jeder zeile ist gleich, aber mir unbekannt.

    gibt es eine möglichkeit, zum anfang der 2.zeile zu springen mit hilfe des dateipositionszeigers ?

    grüße



  • Mit fgets, wird die komplette zeile eingelesen bis zum zeilenumbruch..

    Lies doch jede zeile jeweils mit fgets in ein buffer ein, und barbeite diesen.
    Bei jedem fgest liest er immer die nächste zeile



  • BorisDieKlinge schrieb:

    Mit fgets, wird die komplette zeile eingelesen bis zum zeilenumbruch..

    Lies doch jede zeile jeweils mit fgets in ein buffer ein, und barbeite diesen.
    Bei jedem fgest liest er immer die nächste zeile

    Wir sind hier bei C++ - und dort nennt sich die entsprechende Funktion getline().

    @zeh: Wenn die Zeilenlänge fest ist, kannst du auch mit seekg(n*line_len) an den Anfang der gesuchten Zeile springen - zur Not mußt du halt vorher die Zeilenlänge ermitteln.



  • hmhm.. also einen befehl oder methode nach dem motto "go to end of line" gibt es in c++ nicht ?

    schade, weil das ist genau das was ich bräuchte.

    ..zur Not mußt du halt vorher die Zeilenlänge ermitteln.

    es muss mit verschiedenen textdateien klappen, d.h. die länge der zeilen kann von datei zu datei variieren.



  • zehplusplus schrieb:

    hmhm.. also einen befehl oder methode nach dem motto "go to end of line" gibt es in c++ nicht ?

    doch - ignore() (liest und verwirft alles auf dem Weg zum Zeilenende). C++ geht davon aus, daß die Zeilenlänge variabel sein kann (eine Zeile endet dort, wo ein \n steht), da macht es sich schwer, ohne Aufwand zu einer bestimmten Zeile zu springen.

    ..zur Not mußt du halt vorher die Zeilenlänge ermitteln.

    es muss mit verschiedenen textdateien klappen, d.h. die länge der zeilen kann von datei zu datei variieren.

    Bist du wirklich sicher, daß alle Zeilen einer Datei die gleiche Länge haben? Wenn ja, kannst du einfach die Länge der ersten Zeile bestimmen (zählen bis zum ersten '\n') und auf alle weiteren übertragen.


Anmelden zum Antworten