fseek - über dateiende/anfang hinaus



  • hallo!

    Ich komme nicht drauf, wie ich verhindern kann mich mit fseek über den Dateianfang bzw. das Dateiende hinauszupositionieren ?

    Gibt es eine funktion(rückgabewert dieser funktion), wo einen einen vergleich mit der momentanen spi-position machen kann und somit ein weiteres zurückpositionieren vor den dateianfang verhindern kann?

    ich hoffe das war halbwegs verständlich und möcht mich gleich für die antworten bedanken

    *danke*

    Renate 😞



  • Mit fseek(file,0,SEEK_END) bekommst du das Ende raus, mit fseek(file,0,SEEK_SET) den Anfang (der ja sowieso 0 ist 😃 ) und mit fseek(file,0,SEEK_CUR) die aktuelle Position.
    Deine Frage kapier ich trotzdem nicht! 😕

    [ Dieser Beitrag wurde am 22.11.2002 um 18:32 Uhr von ºgrimmsenº® editiert. ]



  • ok nochmal...

    in einer schleife positioniere ich mich von angenommen von der mitte der datei immer um -1*sizeof(struct...) von SEEK_CUR nach vorne ... irgendwann hab ich dann den dateianfang erreicht! wie weiß ich ob die momentane position gleich dem Dateianfang ist?

    ich hoffe es ist nun besser verständlich

    Renate 😞



  • Achso,

    if(fseek(file,0,SEEK_CUR)==0)
    {
      // wenn das erfüllt ist bist du am Daiteianfang
    }
    

    Das setzt aber voraus, daß du von einer Postition startest, die ein Vielfaches der Grösse deiner Datenstruktur ist. Sonst gibt's da Probleme. Die kannst du aber auch abfangen:

    if( (fseek(file,0,SEEK_CUR)==0) || //erste Bedingung
        (fseek(file,0,SEEK_CUR)<sizeof(struct..))
    {
     ...
    }
    

    Mit der zweiten Bedingung erreichst du, dass du nicht ins negative abrutscht!!
    In der Hoffnung dir geholfen zu haben ... MfG

    [ Dieser Beitrag wurde am 22.11.2002 um 22:14 Uhr von ºgrimmsenº® editiert. ]


Anmelden zum Antworten