String Dateien suchen
-
hi,
eins vorneweg. hab nun google benutzt, foren durchsucht usw. aber keine brauchbar lösung gefunden.
das problem an sich ist wohl recht leicht zu lösen, ich weiss es aber trotzdem nicht ^^
folgendes: ich habe eine datei mit normalen text und in dieser dateil möchte ich ein bestimmtes wort suchen und die folgenden wörter/zahlen danach auslesen.
wie geht das?^^
-
Schau Dir mal std::find an.
-
Wenn dann std::search, aber das funktioniert auch nicht direkt, weil du dazu Forward Iteratoren brauchst.
Es stellen sich verschiedene Fragen:
- 1. Wie groß ist die Datei? Kann sie komplett in den Speicher gelesen werden? Dann search.
- 2. Befindet sich der Suchstring jeweils komplett in einer Zeile, oder ist er zeilenübergreifend? Wenn ersteres, kannst du die Zeilen mit getline einlesen und dann mit string::find und Konsorten durchsuchen.
- 3. Trifft das nicht zu, kann man die Datei blockweise lesen und darin suchen. Ziemlich haarig, weil der Suchstring über Blockgrenzen gehen kann.
- 4. Oder man sucht sich einen Algorithmus, der immer nur vorwärts läuft. Wenn man den Suchstring vorher entsprechend bearbeitet, ist das möglich. Ich weiß leider gerade nicht sicher, welcher das war ... ich glaube Knuth-Morris-Pratt.
- 5. Man schreibt eine Art Adapter, der aus Stream-Iteratoren Forward-Iteratoren macht.
-
dies ist u.a. einer solche datei (logdatei). die logdateine sind von 20 kb bis zu 20 mb gross.
---------------------------------------------------------------------- ROBOCOPY v 1.96 : Robust File Copy for Windows NT ---------------------------------------------------------------------- Started : Fri May 07 10:05:56 2004 Source : E:\public\RCTest\ Dest : F:\RCTest\ Files : *.* Options : *.* /V /S /E /PURGE /MIR /NP /R:1 /W:1 --------------------------------------------------------------------- 9 E:\public\RCTest\ New File 167936 Klassendiagramm biblio.VSD New File 14016672 krass.mp3 New File 971 Neu Textdatei.txt New File 556 raster.php New File 181483 RKblack.jpg New File 6459 sex.zip New File 704836 subway.zip New File 196608 Übung SEN Gaststätte.VSD New File 2359350 wammbilla.bmp --------------------------------------------------------------------- Total Copied Skipped Mismatch FAILED Extras Dirs : 1 0 1 0 0 0 Files : 9 9 0 0 0 0 Bytes : 16.81 m 16.81 m 0 0 0 0 Times : 0:00:05 0:00:05 0:00:00 0:00:00 Speed : 3319192 bps. Speed : 189.925 mb/min. Ended : Fri May 07 10:06:02 2004
bei den ganzen interessieren mich die einträge bei "FAILED".