Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » letzter eintrag in einer Datei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.09.2005, 17:21 Uhr
~ItsMe
Gast


Hi,
ich habe folgendes Problem:

ich habe mehrere files die relativ gross sind ca. 200-400 MB.
Diese brecher möchte ich nun öffnen und brauche NUR die letzte Zeile mit einem fgets auslesen.

Problem:
- Ich möchte nicht alle "\n" zählen und dann mich zur letzten zeile runter schaukeln.
- fseek() handeled dass mit bytes was mir auch wirklich nicht nützt

Frage:
- wie kann ich EOF-1 bekommen?
- Gibt es irgendein fiesen Trick um das zu lösen

Ich weiss ich will von A nach C ohne über B zu gehen, aber dass muss doch gehen!!!

Bin für alle fiesen tricks dankbar!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.09.2005, 19:37 Uhr
imhotep
followed the white rabbit


Du kannst fseek verwenden. fseek(FILE, 0, SEEK_END) setzt die Position ans Zeilenende. Lies mal die Beschreibung von fseek. hier
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.09.2005, 19:58 Uhr
Beyaz



hhhmmm....NÖ! :-)

ja ok mit fseek() ist man am dateiende...und dann? wenn ich jetzt einen fgets() mache
kommt alles aber nur nicht der letzte string der datei.

Mir wär es echt lieb, wenn der mit den Zeiger auf den anfang der letzten Zeile setzt.

.
.
.
letzte Zeile <-hier will ich diesen sch....Pointer haben :-)
EOF

Trotzdem danke für deinen feedback.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.09.2005, 20:50 Uhr
imhotep
followed the white rabbit


Mir wärs auch lieber, wenn mein Rechner mir die Wäsche wäschen und Kaffee kochen würde.

Musst du halt das selbst machen, tut mir ja in der Seele weh, aber so schwer ist es ja nicht.


C++:
int i = -1;
char c;
do {
  i--;
  fseek(file, i, SEEK_END);
  c = fgetc(file);
} while (c!='\n');



Komm mein Computer hat grad Kaffee gemacht, trink einen mit und dann frisch ans Werk.

Dieser Post wurde am 15.09.2005 um 20:55 Uhr von imhotep editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: