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