hallo 388dave,
auch wenn schon alles gesagt wurde:
Delphi-Quellcode:
if s<>''
then begin
for i:=1 to length(s) do begin
if s[1] = '1'
then begin
if s[i] = ';'
then begin inc(j);
end
else
if s[1] = '2'
then begin
if s[i] = ';'
then inc(k);
end
end;
if j =1 then endstr:=j;
if k =1 then endstr:=k;
beginstr:=0;
s:=copy(s,beginstr,endstr-beginstr+1);
Label2.Caption:=s;
Socket.SendText(Text);
Label3.Caption:=Text;
Delphi-Quellcode:
if s[1] = '1' then j:=pos(';',s);
if s[1] = '2' then k:=pos(';',s);
Hierbei wird das erste Auftreten von ";" übernommen, Bei Deiner Vorgehensweise das letzte! Wenn so gewollt, dann OK aber dann würde ich eine Dekrement bevorzugen.
Delphi-Quellcode:
beginstr:=0;
s:=copy(s,beginstr,endstr-beginstr+1);
das geht brutalst in die Hose, da Stringdaten erst ab dem Index 1 zur verfügung stehen. Nur die shortstrings haben an der Position 0 Daten (ihre Länge) und diese Information willst Du ja nicht haben.
Achja beinahe übersehen, wo kommt eigentlich der Wert von "endstr" her ? (Wenn k oder j mal nicht=1 sind?)
Und in Text
Delphi-Quellcode:
Socket.SendText(Text);
Label3.Caption:=Text;
steht hier alles mögliche (wahrscheinlich nichts), da "Text" kein Wert zugewiesen wurde.
Ausserdem ist "Text" nicht gerade glücklich, "MeinText" ist zwar auch nicht viel schöner, birgt aber eine geringere Verwechslungsgefahr (zum Glück gibt's kein TForm.Text).
Gruß
K-H