Textdatei rückwärts einlesen
-
Hallo!
Ich habe eine Textdatei, wo Worte im Textformat abgespeichert sind.
Nun möchte ich den Inhalt rückwärts in einen String speichern. Da die Textdatei sehr lang ist, dauert es zu lange die gesamte Textdatei einzulesen und dann umzudrehen ...
Ich möchte immer nur die letzten 10 Zeihen.
Wäre über Hilfe dankbar!
LG
-
Wenn du nur die 10 letzten Zeichen der Datei willst, dann kannst du einfach den Lesezeiger dorthin positionieren:
std::ifstream iff("text.txt"); iff.seekg(-10, std::ios_base::end); std::string sText; iff >> sText; std::reverse(sText.begin(), sText.end());Oder willst du von jedem Wort nur die 10 letzten Zeichen (und diese dann umgedreht)?
-
Nein ... so wie dein Beispielcode is, solls auch sein ...
Mal noch ne andere Frage ...
Ich suche in einer Textdatei solange, bis ich ein bestimmtes Wort finde ... halt nur wieder rückwärts ... wie mache ich das?
Vielen Dank!
-
Ich weiß nicht, ob es eine Möglichkeit gibt, den Stream rückwärts auszulesen (ohne explizit immer wieder ssekg() aufzurufen), quasi einen reverse_fstream zu erzeugen - dann wäre es ja simpel -)
So kann ich dir nur empfehlen, immer Zeichen für Zeichen rückwärts zu springen (mittels seekg()), dann versuchen ein Wort einzulesen, und dieses dann mit deinem Such-Wort vergleichen.