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 0000335423123

    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\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


Anmelden zum Antworten