000
08.09.2008, 11:32 Uhr
~maslensa
Gast
|
Hallo
Ich habe solche daten in eine text datei
2006/09/06-09:02:28.928134-29530- /vobs/ims_cscf1 2006/09/06-09:02:28.928134-29530- Sapi::deliver_external_message() Sapi successfully delivered
2006/09/06-09:02:28.928461-29530- /vobs/ims_cscf1/sapi/src/Sapi.cxx 2006/09/06-09:02:28.928461-29530- Sapi::deliver_external_message() Sapi 2006/09/06-09:02:28.928461-29530- ==================== 2006/09/06-09:02:28.928461-29530- SAPI: external message <432>
2006/09/06-09:02:28.928461-29530-*********************************
mein programm muss aber das gleiche timestamps erkennen und die Informationen , die neben timestamp stehen , muss dann hinterneinander schreiben. Z.B so;
2006/09/06-09:02:28.928461-29530- /vobs/ims_cscf1/sapi/src/Sapi.cxx Sapi::deliver_external_message() Sapi ==================== SAPI: external message <432>
Ich habe code geschrieben aber ich kann nicht weiter. meine coden schauen so aus ;
#include <iostream> #include <fstream> #include <string> #include <map> #include <vector>
using namespace std;
class collector { public: void arrange(string,string); }; void collector::arrange(string infile,string outfile) { ifstream in(infile.c_str()); ofstream out(outfile.c_str()); out.flush(); string line; map <string ,string ,less<string> > arrangedlist; while(getline(in,line)) { int splitcharindex=line.find_last_of("-"); string timestamp=line.substr(0,splitcharindex); string eventmesg=line.substr(splitcharindex+1,line.size()-(splitcharindex+1)); arrangedlist[timestamp]+=("\n"+eventmesg); } map<string,string,less<string> >::iterator itm; itm=arrangedlist.begin(); for(;itm!=arrangedlist.end();itm++) { out<<itm->first<<itm->second<<"\n"; } out.close(); } int main() { collector col; col.arrange("dmesg1.txt","dout.txt"); return 0; }
Diese Coden kann momentan nicht ganz gut erkennen . Wie kann ich es kriegen ?
Danke für die Hilfe. |