Probleme mit string erase



  • Hallo,
    ich schreibe gerade ein Programm und muss dafür aus einem String einzelen Abschnitte rauslesen. Ich will das so lösen, dass ich die Zeichen, die ich ausgewertet habe, mittels erase löschen. Bloß irgendwann liefert erase nur noch komische Zeichen zurück.
    Hier mein Quellcode:

    #include "stdafx.h"
    #include <string>
    
    int main(int argc, _TCHAR* argv[])
    {	
    	std::string::size_type posP=0;
    	std::string::size_type posK=0;
    	std::string::size_type posE=0;
    
    	std::string testLUT="{if(USER[].QUANTITYHOLD<PICKS[].QUANTITY,TEST,)}";
    	std::string testLUTName;
    	std::string testLUTField;
    	std::string testLUTName2;
    	std::string testLUTField2;
    	testLUT.erase(0,4);		//hier die ersten 4 Zeichen löschen, nicht weiter wichtig
    	testLUT.erase(testLUT.end()-2,testLUT.end()); //hier die letzten 2 Zeichen löschen, nicht weiter wichtig		
    	posP = testLUT.find("["); 	
    	testLUTName= testLUT.substr(0,posP);				
    	testLUT.erase(0,posP+3);		//USER und Klammern löschen
    	posK=testLUT.find("<");
    	testLUTField=testLUT.substr(0,(posK));				
    	testLUT.erase(0,posK+1);	//QUANTITYHOLD löschen						
    	posE=testLUT.find("[");		
    	testLUTName2= testLUT.substr(0,posE);				
    	testLUT.erase(0,posE+3);	//Hier schreibt er irgendwelche Daten in testLUT							
    	posP=testLUT.find(",");
    	testLUTField2=testLUT.substr(0,posP);								
    	testLUT.erase(0,posP);		//		
    }
    

    Ich habe es auch schon probiert, den testLUTString in verschiedene Strings aufzuteilen, aber wenn ich substr mache, liefert er auch nur falsche Daten. Leider weiß ich einfach nicht mehr weiter. Vielleicht könnte ihr mir helfen...

    Danke Kaleun



  • Ich habe es auch schon probiert, den testLUTString in verschiedene Strings aufzuteilen, aber wenn ich substr mache, liefert er auch nur falsche Daten. Leider weiß ich einfach nicht mehr weiter. Vielleicht könnte ihr mir helfen...

    Dein Ansatz mit erase ist absolut Müll. Nimm lieber substr. Welchen Teil des strings brauchst du denn ?


Anmelden zum Antworten