Datei Zeilenweise nach einer Zeichenfolge durchhsuchen



  • Hi leute ich möchte gerne eine relativ große datie zeilenweise durchsuchen. also ich stell mir das so vor:

    1 zeile nach "wort" durchsuchen

    wenn ja dann in einem buffer speiuchern und weiter verarbeiten

    wie mach ich das ?



  • Hallo!
    Man koennte doch die Datei zeilenweise einlesen und den String dann mit find durchsuchen.

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstddef>
    
    using namespace std;
    
    int main()
    {
    	ifstream inp;
    	string filename, wort, temp;
    	int zeile = 1;
    	size_t spalte;
    
    	cout << "Dateiname? ";
    	getline(cin, filename);
    	cout << "\nWelches Wort soll gefunden werden? ";
    	getline(cin, wort);
    
    	inp.open(filename.c_str(), ios::binary | ios::in);
    
    	if (!inp)
    	{
    		cerr << "Fehler beim oeffnen von " << filename;
    		return -1;
    	}
    
    	while (!inp.eof())
    	{
    		getline(inp, temp);
    		spalte = temp.find(wort);
    		if (spalte != string::npos)
    			cout << "\n" << wort << " gefunden in Zeile " << zeile << ", Spalte " << spalte << "!";
    		zeile += 1;
    	}
    
    	inp.close();
    	return 0;
    }
    

    Gruss,
    Cartman



  • abgespaced, danke für denn code hat sich somit erldigt

    danke



  • Man kann uebrigens bei find() als zweiten Parameter noch die Position angeben... Damit koennte man noch ueberpruefen wie oft ein Wort in der Zeile vorkommt...

    Gruss,
    Cartman


Anmelden zum Antworten