Dateien lesen + Ausgabe - Verständnis Problem -



  • Guten Tag zusammen.

    Ich bin ein blutiger Neuling in der C++ Welt, und stehe nun vor einem mir " unlösbaren 🙂 " Problem.

    Aufgabenstellung:

    Ich moechte ein Programm schreiben, das eine *.txt (Logfile, ca. 10.000 Zeilen)
    einliest.
    Die Einträge der Logfile sehen wie folgt aus:
    Ein "Logeintragblock besteht aus 7 zeilen und wird durch eine Leerzeile von dem nächsten getrennt.

    Date: 01/20 00:00:17
    Name: (http_inspect) BARE BYTE UNICODE ENCODING
    Priority: 2
    Type: n/a
    IP Info: 192.168.1.1 -> xxx.xxx.xxx.xxx
    SID: n/a
    Refs: 
    
    Date: 01/20 00:00:17
    Name: (http_inspect) BARE BYTE UNICODE ENCODING
    Priority: 2
    Type: n/a
    IP Info: 192.168.1.1 -> xxx.xxx.xxx.xxx
    SID: n/a
    Refs: 
    
    usw.
    

    Das Programm sollte die Datei zeilenweise durchlaufen und auf einen bestimmten String überprüfen. (z.b auf Priority: 2).
    Wenn es den String findet "sollte" es mir eine Bildschrimausgabe der vorherigen beiden zeilen - der aktuellen zeile (Priority: 2) - und der nachfolgenden 4 Zeilen ausgeben.

    Dies hier ist mein Ansatz zur Realisierung, aber für die oben beschriebene Ausgabe fehlt mir das Wissen.

    #include "stdafx.h"
    #include "iostream"
    #include "iomanip"
    #include "fstream"
    
    using namespace std;
    
    int main(){
    
    	int i=1;
    	char zeile[250],datei[50];
    	cout << "dateiname :" <<flush;
    	cin.get(datei,50);
    
    	ifstream eingabe;
    	eingabe.open(datei,ios::in);
    	if(eingabe.good()){
    	  cout <<"Datei :" << datei << "\t"
    	       << eingabe.tellg() << "Bytes" 
    	       << endl;
    
    	for(int j=0; j<50; j++)
    		cout << "_";
    	cout << endl;
    
    	eingabe.seekg(0L,ios::beg);
    	while (!eingabe.eof()){
    
    		eingabe.getline(zeile,250);
    		cout << setw(2) << i++ 
    		<< ":" << zeile << endl;
    	}
    
    	}
    	else 
    		cout << " Datei nicht gefunden oder beschaedigt" << endl;
    	return 0;
    }
    

    Ich hoffe ich habe mich verständlich genug ausgedrückt.
    Schonmal Danke fürs lesen im voraus.

    Gruß crp

    +++ [EDIT] +++
    Niemand da draussen der mir helfen koennte/moechte ??
    Bin ich komplett auf dem Holzweg ??
    Sind meine Gedanken ueberhaupt zu realisieren ??
    😮
    **@TGGC

    .... haettest du auch einen Ansatz wie ich weiter vorgehen koennte?

    **
    ++++[/EDIT] +++++++



  • Ok, ich hab's gelesen!

    Bye, TGGC (Der Held lebt!)



  • schau dir die boost libary an
    Aber es dürfte auch nicht so schwers sein bei deiner datei einen passten paatern match zu implementieren
    mfg



  • Ich würde erstmal die ganze Datei zeilenweise einlesen und in einen std::vector speichern.

    Bye, TGGC (Der Held lebt!)



  • Danke für eure Hilfe.
    Gruß crp


Anmelden zum Antworten