Danke für die Hilfe... scheint die richtige Methode zu sein...
So sendet der Server nun:
Code:
Server.Socket.Connections[0].SendText(#13'S000 '+sUser);
Server.Socket.Connections[0].SendText(#13'S001 '+sCName);
Server.Socket.Connections[0].SendText(#13'S002 '+sLang);
Meine GetString() Funktion:
Code:
function GetString(Text : String; Index : integer) : String;
var
stemp : string;
cIndex,eIndex,n : integer;
begin
if Pos(#13,Text)<>0 then
begin
n:=0;
cIndex:=0;
stemp:='';
repeat
n:=n+1;
if Text[n]=#13 then cIndex:=cIndex+1;
until (cIndex=Index) or (n=length(Text));
if n=length(Text) then
begin
GetString:='ERROR | ZU WEIT';
end
else
begin
cIndex:=n;
repeat
n:=n+1;
until (n=length(Text)) or (Text[n]=#13);
eIndex:=n;
if n=length(Text) then eIndex:=eIndex+1;
for n:=cIndex+1 to eIndex-1 do
begin
stemp:=stemp+Text[n];
end;
GetString:=stemp;
end;
end
else GetString:='ERROR | Empfangener String ungültig';
end;
Dass er nun jede Zeile einzelt bearbeitet scheint soweit zu klappen, Memo:
Zitat:
>>> C000
<<< S000 Vorname Nachname
<<< S001 Computername
<<< S002 Deutsch (Deutschland)
Bei der Repeat-Schleife habe ich allerdings noch ein Problem
Code:
until (GetAktion(s)='ERROR') or (n>20);
Die Funktion GetAktion() habe ich nicht, ich möchte einfach, dass er bis zum letzten String durchmacht, habe provisorisch folgendes gemacht:
...was auf Langzeit natürlich nicht hinhaut... da die Inhalte dynamisch werden usw...
wäre dankbar, wenn jemand dafür noch einen Lösungsvorschlag hätte.
Nebenbei fiel mir noch auf, dass die Caption vom ganzen Form geändert wird sobald der Server etwas sendet.. und zwar in den Inhalt von SendText (?).. dabei habe ich kein einziges mal das Wort "Caption" im Code..