019
05.10.2004, 00:31 Uhr
enter-break
|
vielen dank nochmal,
also - habs probiert, doch findet er leider immer nur einmal keyword0 (am bildschrim mal ausgegeben)
ich poste jetzt mal meine original datei:
Code: |
Von: mail@server.de Gesendet: Sonntag, 18. Januar 2004 21:43 An: enter@test.de Betreff: Bestellung
#------ Order 91511 -------# To= enter@test.de Datum= 18.1.2004,21:43:21 Remote_Addr= 99.999.999.999 TRNR= 91511 ******** Artikel 1 ************* Anzahl= 5 Artikel= 0004 Bezeichnung= Artikel01 Preis/Stk.= 2.30
******** Artikel 2 ************* Anzahl= 2 Artikel= 0002 Bezeichnung= Artikel02 Preis/Stk.= 2.15
******** End ****************** ------ Bestell Formular -------- Anrede= Herrn Firma= -ohne- Name= Hans Vorname= Dampf Strasse= Hirschstraße 7 Land= D PLZ= 23111 Ort= Orthausen TelefonP= 07164-11111 EMail= hans@dampf.com URL= Ja ##----- End ---------------------
Von: mail@server.de Gesendet: Sonntag, 18. Januar 2004 22:43 An: enter@test.de Betreff: Bestellung #------ Order 90054 -------# To= enter@test.de Datum= 18.1.2004,21:43:21 Remote_Addr= 99.999.999.999 TRNR= 90054 ******** Artikel 1 ************* Anzahl= 1 Artikel= 0128 Bezeichnung= Artikel5 Preis/Stk.= 1.95
******** Artikel 2 ************* Anzahl= 1 Artikel= 0129 Bezeichnung= Artikel9 Preis/Stk.= 2.25
******** End ****************** ------ Bestell Formular -------- Name= Michael Vorname= Muster Strasse= Hanauer Str. 5 Land= D PLZ= 12345 Ort= Musterhausen EMail= abc@muster.de URL= Ja Bemerkung= -ohne- ##----- End ---------------------
|
UND SO SOLLTE DIE DATEI AUSSEHEN:
Code: |
Von: mail@server.de Anrede= Herrn Firma= -ohne- Name= Hans Vorname= Dampf Strasse= Hirschstraße 7 Land= D PLZ= 23111 Ort= Orthausen TelefonP= 07164-11111 EMail= hans@dampf.com URL= Ja Gesendet: Sonntag, 18. Januar 2004 21:43 An: enter@test.de Betreff: Bestellung
#------ Order 91511 -------# To= enter@test.de Datum= 18.1.2004,21:43:21 Remote_Addr= 99.999.999.999 TRNR= 91511 ******** Artikel 1 ************* Anzahl= 5 Artikel= 0004 Bezeichnung= Artikel01 Preis/Stk.= 2.30
******** Artikel 2 ************* Anzahl= 2 Artikel= 0002 Bezeichnung= Artikel02 Preis/Stk.= 2.15
******** End ****************** ------ Bestell Formular -------- ##----- End ---------------------
Von: mail@server.de Name= Michael Vorname= Muster Strasse= Hanauer Str. 5 Land= D PLZ= 12345 Ort= Musterhausen EMail= abc@muster.de URL= Ja Bemerkung= -ohne- Gesendet: Sonntag, 18. Januar 2004 22:43 An: enter@test.de Betreff: Bestellung #------ Order 90054 -------# To= enter@test.de Datum= 18.1.2004,21:43:21 Remote_Addr= 99.999.999.999 TRNR= 90054 ******** Artikel 1 ************* Anzahl= 1 Artikel= 0128 Bezeichnung= Artikel5 Preis/Stk.= 1.95
******** Artikel 2 ************* Anzahl= 1 Artikel= 0129 Bezeichnung= Artikel9 Preis/Stk.= 2.25
******** End ****************** ------ Bestell Formular -------- ##----- End ---------------------
|
habs jetzt soweit, dass ich zumindest den jeweiligen Adress-Block ausgeschnitten hab in der ausgabe-datei, aber immer noch nicht jeweils an zeile x+1 (also eine Zeile NACH "Von:") eingefügt.
Code: |
#include <iostream> #include <string> #include <vector> #include <fstream> #include <iterator> #include <algorithm>
int main() { std::string line; std::string file_in="test.txt"; std::string file_out="test2.txt"; //std::string keyword1="bezug1"; //std::string keyword2="bezug2"; std::string keyword1="------ Bestell Formular -------"; std::string keyword2="##----- End --------------------"; std::string keyword0="An:"; //
std::vector<std::string> file; std::vector<std::string>::iterator x; std::vector<std::string>::iterator i; std::vector<std::string>::iterator j;
std::ifstream ifs(file_in.c_str()); while(std::getline(ifs,line)) file.push_back(line); ifs.close();
// ist das hier richtig? ein zeiger auf keyword0 ?? for (x=file.begin();x!=file.end() && std::string::npos==x->find(keyword0);++x); std::cout<<*x<<std::endl; // hier zeigt er nur auf das erste Von:
// for(i=file.begin();i!=file.end() && std::string::npos==i->find(keyword1);++i); for(i=x+1;i!=file.end() && std::string::npos==i->find(keyword1);++i); for(j=++i;j!=file.end() && std::string::npos==j->find(keyword2);++j); std::ofstream ofs(file_out.c_str());
std::copy(x, i,std::ostream_iterator<std::string>(ofs, "\n"));//
//std::copy(i, j, std::ostream_iterator<std::string>(ofs, "\n")); std::copy(file.begin(), i, std::ostream_iterator<std::string>(ofs, "\n")); std::copy(j, file.end(), std::ostream_iterator<std::string>(ofs, "\n"));
ofs.close(); }
|
oh mann, mir brummt der schädel - schon 18 stunden nicht geschlafen und ich sterb gleich *jammer* Dieser Post wurde am 05.10.2004 um 00:33 Uhr von enter-break editiert. |