Nachricht austeilen
-
Ich habe ein Client Server Programm. Nun send eich dem Server eine Nachricht:
hMessage=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","",WS_CHILD| ES_AUTOHSCROLL| ES_MULTILINE|WS_VISIBLE ,10,45,260,20,hWnd,NULL,hInstance,NULL); ////////////////////////////////////////////// l=GetWindowTextLength(hMessage); GetWindowText(hMessage,buffer,5000); bytes=send(s,buffer,l,0);
Angenommen die Nachricht sieht nun so aus:
"password<pw> Das ist ein Text"Nun in PHP weis ich das ich Strings aufteilen kann. Ich kann laso den String nach dem TAG <pw> teile. Dann erhalte ich zwei Strings die so aussehen:
Teile String bei <pw>
string[0] = password
string[1] = <pw> Das ist ein TextWie geht das in C++ ??? Ist eigentlich sehr dringend :S
-
strstr - schau mal danach in der MSDN-Library oder im C-Forum
-
sorry aber das raff ich nicht :S
ich such im String ein SChlüsswelwort udn will den string dann in zwei teile aufteilen.
Aber das raff ich nicht
-
strtok()
-
ne sorry das hab ich nicht gerafft :S ich habe strtok() schon bei google gefunden aber nicht begriffen... bin noch nicht sehr lange an C++ dran.. leider aber komm da echt nicht weiter
-
Na dann such doch mal hier im Forum. Die Such-Funktion hat allein nach 20 Sekunden schon 11 Ergebnisse zu strtok, bevor ich sie abbrach....
Ich selber hatte sogar schonmal die komplette Beschreibung zu strtok() aus einem C-Lehrbuch abgetippt, weil hier jemand behauptete strtok() würde die Einzelstrings nicht mit '' abschließen...
Also, rechts oben auf suchen klicken, 'strtok' eingeben und warten was passiert....
strtok (Anfänger...)[ Dieser Beitrag wurde am 21.06.2003 um 11:50 Uhr von Hepi editiert. ]
-
gebreifs leider imemr noch nicht
-
Beispiel:
char *ptr, *s1 = " 23.Okt.88 16:54:40"; char s2 = " .:"; // Blank, Punkt, Doppelpunkt ptr = strtok(s1, s2); while(ptr != NULL) printf("\t%s", ptr), ptr = strtok(NULL, s2); /* Ausgabe: 23 Okt 88 16 54 40 */
Jetzt verständlicher?
Oder in Deinem Fall:
buffer [] = "password<Das ist ein Text!"; string[0] = strtok( buffer, "<"); // string[0] ist nun "password" string[1] = strtok( NULL, "<"); // da '<' nicht mehr im buffer vorkommt, // ist der komplette Rest von Buffer in string[1]! // also: string[1]= "Das ist ein Text"
Allerdings solltest Du ein anderes Trennzeichen als <pw> verwenden (das sind nämlich 4(!!!) Trennzeichen! Nimm lieber nur ein Trennzeichen, wie z. B. '<' oder '>'... weil strtok() nicht mit mehreren Trennzeichen funktioniert (bzw. andere Ergebnisse liefert, als Du erwartest. In deinem Beispiel würden '<', 'p', 'w' und '>' aus dem String entfernt, sobald sie auftauchen!
[ Dieser Beitrag wurde am 21.06.2003 um 12:40 Uhr von Hepi editiert. ]
-
ich bin zu blöde
error C2059: Syntaxfehler : ']'
C:\sm1\main.cpp(1213) : error C2065: 'string' : nichtdeklarierter Bezeichner
C:\sm1\main.cpp(1213) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp
C:\sm1\main.cpp(1213) : error C2059: Syntaxfehler : ')'
C:\sm1\main.cpp(1213) : error C2440: '=' : 'char *' kann nicht in 'int' konvertiert werden
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
C:\sm1\main.cpp(1214) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp
C:\sm1\main.cpp(1214) : error C2440: '=' : 'char *' kann nicht in 'int' konvertiert werden
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.
-
Fehlermeldungen ohne Code bringen nix.
-
buffer [] = "password<Das ist ein Text!";
string[0] = strtok( buffer, "<")); // string[0] ist nun "password"
string[1] = strtok( NULL, "<"); // da '<' nicht mehr im buffer vorkommt
-
ich empfehle dir mal dringend ein buch zu lesen, du scheinst keine ahnung von der sprache zu haben.
-
danke dir dennoch bei der hilfe
-
Original erstellt von dEUs:
ich empfehle dir mal dringend ein buch zu lesen, du scheinst keine ahnung von der sprache zu haben.Das ist zwar hart ausgedrückt, ich stimme da mit Dir aber vollkommen überein!