Strings in TXT Datei Suchen und ausgeben

uzo

Grünschnabel
Hallo!
Ich brauche ein Programm, das einen Email-Folder analysiert. Ein solcher Folder ist eine Textdatei, in der Ihre Emails der Reihe nach gespeichert sind. Der Anfang einer Email hat dabei einen festen Aufbau. Ihr Programm soll jetzt den Namen des Folders als Argument nehmen und folgendes ausgeben:

Anzahl der Emails
Für jede Email: Absender, Betreff und Datum

Jetzt meine Fragen
1.Wie suche ich nach den stings "from" "Subject" " "Date" in dieser Txt datei und wie soll ich es dann für die Ausgabe in die c++ datei einlesen?
2. Wie speichere bzw. wie lese ich den jeweiligen String in der cpp für die ausgabe
3.wie mache ich die ausgabe vom text nach FROM: ... und nach Subject:....

Wäre euch echt dankar für eine Hilfe...hab des halt nicht so drauf...
 
.....und meine Frage ist nur eine einzige : Schonmal die SUCHE betätigt ?

Hier gibts hunderte von Postings zu dem Thema Strings filtern und Textdateien auslesen.


Finde das echt schon Schlimm das sich manche Leute nie die Mühe machen zu suchen, und die hilfsbereiten Leute dann alles mehrfach schreiben müssen.


Hoffe mal der nächste Admin schließt den Thread hier.


Gruss

MFC OpenGL


PS : Wenn du was konkret nicht verstehst und dann Fragen hast ist das was anderes, nur Fragen die es schon zu genüge beantwortet gibt finde ich nicht gut.
 
hier meine lösung bisher
Code:
#include <fstream> // zur Dateibearbeitung 
#include <strstream> 
#include <string>
#include <iostream> 

using namespace std; 

int main() 
{ 
char zeile [181]; //Zeile max 181 Zeichen 
string Seite[10000], dateiname; // Datei Max 10000 Zeilen 
int size=0, i=0;

cout<< "Geben Sie bitte den gewuenschten Dateinamen bzw. Emailfolder ein" << endl;
cin>> dateiname;


fstream dateiLese(dateiname.c_str(),ios::in); // Eingabe Datei 
//if (dateiLese) // solange die Zeile nicht leer ist

while(dateiLese.getline (zeile, 180)) // Zeile lesen 
{ 

Seite[i]=zeile; 

// Hier kann die Zeile bearbeitet werden 

// Zeile in ausgabe.txt schreiben 

i++;

} 


//dateiLese.close (); // Datei schliessen 


size=i;
 for(i=0;i<size;i++)
 {
	 cout << Seite[i] << endl; 
 }
return 0; 
}


aber ich versteh einfach nicht wieso er nach dem asugaebn direkt das konsolenfenster schliesst...
 
ich hab bis jetzt den folgenden code zusammengebracht:
Code:
#include <fstream> // zur Dateibearbeitung 
#include <strstream> 
#include <string>
#include <iostream> 

using namespace std; 

int main() 
{ 
char zeile [180]; //Zeile max 181 Zeichen 
string dateiname;  

cout<< "Geben Sie den gewuenschten Dateinamen bzw. Emailfolder ein >>" << endl <<endl;
cin>> dateiname;

 ifstream datei(dateiname.c_str());
 
 if (!datei)
	 cout << "Fehler beim öffnen der Datei" << endl; 
   
 while(datei.getline(zeile,180)) //Zeilenweise auslesen
 {
  //while(Seite[i].find("Subject")== string::npos)
	
	 
	 cout << zeile<<endl;
	}

 }
 

 if (!datei.eof()) return 2; //Fehler beim Lesen der Datei, bin noch nicht am Ende der Datei!



 return 0;  //erwartetes Ende
 
 }

mir fehlt jetzt in der mitte die suche nach "From" "Subject" "date"...
wie heist es dort ungefähr ...ala if(zeile.find("From")
und die Augabe ala
cout<< Text nach "From"
 
Zuletzt bearbeitet:
Zurück