CStrings zerhacken für Netzwerkpackete



  • Hallo

    also ich über mittel Daten über CAsyncSocket
    Da ich verschiedene arten von Daten brauche sende ich sie mit verschiedenen vorzeichen.

    z.B.
    x-koordinate versende ich mit "01"+mcXykoordinateversendeichmit"02"+m_cX y-koordinate versende ich mit "02"+m_cY

    am Server will ich diese nun wieder trennen bzw. unterscheiden
    ich will also eine if schleife machen wo ich die ersten 3 zeichen abfrage.
    z.B. bei X: if (erste 3 zeichen == "01$"){ erste 3 ziffern entfernen und x in variable schreiben}

    Bei der realisierung er if schleife is mein prob
    also beim einlesen der ersten 3 ziffern und beim entfernen der ersten 3 ziffern in der schleife. Kann mir jemand bei der schleife helfen?



  • Also mit Left( ) und Right( ) kannst du den String auftrennen
    dann noch ein wenig vergleichen und ein atoi( ) das müsste es doch sein

    Gruß heiko



  • Damit du den String ohne deine Vorzeichen bekommst, könntest du wie folgt vorgehen:

    CString strTemp = _T("01$100");
    	try{
    		if(strTemp.Left(3).Compare("01$")==0){    //vergleicht die ersten 3 Zeichen des Strings (von links) mit der Zeichenkette 01$
    			// 01$ wurde gefunden
    			strTemp.Delete(0,3);    //entfernt die ersten 3 Zeichen des Strings
    			int x = atoi(strTemp);    //Umwandlung des Strings in eine Zahl
    		}
    	}
    	catch(CMemoryException e){}
    

    Gruß, seppelina



  • Au das sieht gut aus werds gleich ma austesten danke schon mal


Anmelden zum Antworten