Textdatei nach einem String durchsuchen



  • Hallo Leute,
    vielleicht könnte mir jemand einen Tip geben wie ich in C folgendes machen kann:
    Muß eine Textdatei nach einem bestimmten Wort durchsuchen
    und das unmittelbar-danach-folgende Zeichen bzw. Ziffer in einer Variablen speichern.
    Für jede Hilfe vielen Dank:)



  • In purem ANSI C bieten sich da natürlich die StreamIO und String Funktionen an.
    Je nachdem, ob du davon ausgehen kannst, die komplette Datei in ein Array zu laden oder ob du Zeilenweise auslesen willst, gehst du anders vor.

    Im ersten Fall, kannst du ja dann das Array mit strstr durchsuchen, das nächste und übernächste Leerzeichen rauspicken, und das Wort dazwischen hinauskopieren.



  • Also du musst erst einen Filestream öffnen,
    dann mit fgets Zeile für Zeile einlesen.
    und mit strstr den teilstring in dem String (die aktuelle zeile) suchen.
    strstr liefert dir NULL zurück, wenn sich der Teilstring nicht in der Zeile befindet, ansonsten einen Zeiger an die Stelle, wo der Teilstring (dein Suchwort) anfängt.
    Jetzt hast du diverse möglichkeiten an das nächste Zeichen zu kommen.

    Zur Info (Nur Pseudocode):

    #include <stdio.h>  // für Filestream
    #include <string.h> // für Stringbehandlung
    
    char line[150]; // aktuelle Zeile
    FILE *f_ptr;
    f_ptr = fopen("Dateiname","r");
    f_prt = fgets(line,150,f_ptr);
    
    while(!feof(f_ptr))
    {
       if(strstr(line,Suchwort))
       {   
          suche nach nächstem Zeichen
          fgets(.....);
       }
       else
          f_prt = fgets(line,150,f_ptr);
    }
    

Log in to reply