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. ]