Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit Teilstrings


Schnup - Di 16.05.06 16:41
Titel: Problem mit Teilstrings
Hi,

ich versuche gerade über den TServer und TClient-Socket, die x und y Werte eines Objektes zu senden. Von Client ---> Server und von Server ---> Client. Ich sende einen String der die x und y werte beinhaltet. Und lese ihn dann mit folgendem code aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
//positionen senden *server*
SendText('xy'+IntToStr(Player1.left)+','+IntToStr(player1.top));

//Positionen empfangen *client*
textclient:=client.Socket.ReceiveText;

//positionen auschneiden *client*
x2:=COPY(textserver,POS('y',textserver)+1,POS(',',textserver)-3);
y2:=COPY(textserver,POS(',',textserver)+1,4);

//positionen empfangen *client*
Player2.Left:=strtoint(x2);
Player2.Top:=strtoint(y2);


Die StringVariable textserver ist der empfangene String, er binhaltet folgenden text:

"xyy,x"

Rot sind die einzelnen positionswere! Sie können von 0-999 gehen!

Wenn ich das Prgramm ausführe und es probiere wird bei x2 oder y2 manchmal ein Buchstabe dargestelt. Das führt dann zu einem Fehler.

Ist hier ein Fehler im Code?
Wenn jemmand einen besseren Weg weiß wie ich die Position von Objekten senden kann, bin immer Ohr :wink:

Mfg Schnup :lol:


Narses - Di 16.05.06 17:20

Moin!

Was du brauchst, nennt man Suche in: Delphi-Forum, Delphi-Library PROTOKOLL und hier [http://www.delphi-library.de/topic_ProtokollChatTutorial+TServerClientSocket++V201_54269.html] kannst du mehr darüber erfahren. ;)

cu
Narses


Schnup - Di 16.05.06 18:21

Danke für deinen Tipp,

würde gerne Wissen ob ich an dem Code (POS und COPY zeilen) was falsch geamcht habe.

Wenn ja könnte mir das jemand Verbessern?



edit: Kann es sein das es an dem Transfer vom Client zu dem Pc die daten "Verwurschteln"

Denn, wenn ich es lokal mache auf meinem Rechner, gibt es da keine probleme!
Wenn ich es über das Internet mit einem Kumpel ausprobiere, kommt ungefähr so ne Fehlermeldung:

"'123xy54' ist kein gültiger Integerwert"

Kann sein das der socket das Ding irgendwie zusammenwurschtelt?


Mfg Tobi


Narses - Mi 17.05.06 00:16

Moin!

user profile iconSchnup hat folgendes geschrieben:
Kann sein das der socket das Ding irgendwie zusammenwurschtelt?

Schau in das Tut, dann weißt du warum. :mahn: Deshalb hab ich dir ja den Tipp gegeben... ;)

cu
Narses