suchen einer bestimmten zeichenkette
-
okdanke aber ichhabe es fast alleine gelöst...*stolz bin nur das ich dann bei der zweiten nummer 0000 habe
Ausgabe:
test 1 0 0 003520574508
test 1 0 1 0000335423123if (file.good()) { //file.seekg(0L, ios::beg); std::string strZeile; string null ("00"); ofile.open("bla.txt",ios::out|ios::ate); ofile << "Kurzwahlnummern\n" << "\t Knoten \t Kurzwahlnummer \t Kurzwahl nach Bereichen \t Kurzwahlnummer \t Rufnummer\n"; while (getline(file,strZeile)) { size_t start = strZeile.find('+'),ende = strZeile.find(',',start); if(start==string::npos) continue; string teil (strZeile.substr(start,ende-start)); teil.replace(0,5,null); ofile << "\t test \t 1 \t 0 \t" << i << "\t" << teil << "\n"; i++; } ofile.close(); }was ist falsch?
-
replace() ersetzt den angegebenen Teil des Strings - was sonst im String steht, wird ignoriert (und muß von dir ausgewertet werden). Das heißt, wenn du unterschiedliche Behandlungen für "+(49)xyz" und "+(49)00xyz" Nummern brauchst, mußt du erstmal feststellen, wie die aktuelle Nummer aussieht - und dann entsprechend reagieren (if(teil.substr(5,2)=="00")...).
-
oh nein fehler vo mir sry geht alles wunderbar.....hatte nicht gesehn das die tel. schon 2 nullen hatte
erst mal vielen dank für die hilfe wenn ich fragen habe wende ich mich wieder in thema(wenn es hier rein passt)
ich werde mich jetzt mehr mit c++ beschäftigen damit ich auch helfen kann und das zurück geben was du mir geholfen hast...*lob an dich*gruss alter
ps: das mit den doppelten null wird nicht passieren das ist eine voraussetzung das die nicht stehen darf also soll ich es nicht prüfen
-
na ich bin es mal wieder...:(
also 2 fragen...wie kann ich begrenzen das der nachname nur 8 zeichen haben darf und wieso schreibt er mir am ende keine tabs mehr...?if (file.good()) { //file.seekg(0L, ios::beg); std::string strZeile; string null ("00"); ofile.open("bla.txt",ios::out|ios::ate); ofile << "Kurzwahlnummern\n" << "\t Knoten \t Kurzwahlnummer \t Kurzwahl nach Bereichen \t Kurzwahlnummer \t Rufnummer \t Nachname \t Vorname\n"; while (getline(file,strZeile)) { size_t start = strZeile.find('+'),ende = strZeile.find(',',start); if(start==string::npos) continue; string teil (strZeile.substr(start,ende-start)); teil.replace(0,5,null); size_t start2 = strZeile.find(' '),ende2 = strZeile.find(',',start2); if(start2==string::npos) continue; string teil2 (strZeile.substr(start2,ende2-start2)); teil2.replace(0,1,""); size_t start1 = strZeile.find("CN="),ende1 = strZeile.find(' ',start1); if(start1==string::npos) continue; string teil1 (strZeile.substr(start1,ende1-start1)); teil1.replace(0,3,""); ofile << "\ttest\t1\t0\t" << i << "\t" << teil; ofile << "\t" << teil2 << "\t" << teil1 << "\n"; i++; } ofile.close(); }bei der ausgabe der strings zwischen den namen