Durchsuchen von Dateien: String finden?



  • Hallo,

    ich möchte ein Textfile durchsuchen.

    Wenn in einer Zeile die Worte "TEST" und "Standard" stehen, dann soll mir eine Meldung ausgegeben werden. Die Worte müssen nicht hintereinander stehen, d.h. es können mehrere Wörter dazwischen stehen. Es ist nur wichtig, ob sie in der gleichen Zeile stehen.

    Wenn ich das jetzt so mache, dann gibt es mir die Meldung immer aus, wenn er irgendwo im Text "TEST" und "Standard" findet.

    void Check() {
        ifstream IN;
        IN.open ("textfile.txt");
        string line;
        while(!IN.eof()) {
            getline(IN, line);
            if (line.find("TEST") != string::npos) {
                if (line.find("Standard") != string::npos) {
                    cout<<"FEHLER"<<endl;
                }
            }
        }
        IN.close();
    }
    

    Wie kann ich den Code ändern, dass er die Meldung wirklich nur ausgibt, wenn es in einer Zeile steht.

    Danke!



  • Hallo,

    Dein Code ist fast Ok. Bis auf die Tatsache, dass er die letzte Zeile zweimal liest sollte er so funktionieren wie gewünscht. Machs mal so

    while(getline(IN, line)) {
        if (line.find("TEST") != string::npos && line.find("Standard") != string::npos)
            cout<<"FEHLER"<<endl;
    }
    

Anmelden zum Antworten