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


Anmelden zum Antworten