Dele dele streng
Jeg har lavet et lille irc prog som kan connecte til en IRC server og joine en kanal osv.Nu vil jeg gerne have delt den data jeg får fra servern lidt op. Den data man får fra servern ser sådan her ud:
:Nick!identd@hoste.dk PRIVMSG #kanal :snak snak blah
så vil jeg dele denne linje op i nick, adresse, status (fx: PRIVMSG), kanal og bem (snak snak blah). Det har jeg så prøvet på at lave =), se koden neden under. Koden virker fint nok indtil der er nogen der Parter eller joiner kanalen hvor programmet er på, hvis det sker så fryser programmet. Det forstår jeg ikke helt er der en anden måde jeg kan dele teksten op på eller noget???
var data, navn, adr, kanal, status, bem: string;
i,j,k,l,m : integer;
begin
data := socket.receivetext;
i := 0;
Repeat
inc(i);
if copy(data,i,1) = '!' then
begin
navn:= copy(data,2,i-2);
J := i;
Repeat
inc(j);
if copy(data,j,1) = ' ' then
begin
adr := copy(data,i+1,j-i);
end;
until copy(data,j,1) = ' ';
k := j;
Repeat
inc(k);
if copy(data,k,1)= ' ' then
begin
status := copy(data, j+1,k-j-1);
end;
until copy(data,k,1) = ' ';
l := k;
Repeat
inc(l);
if copy(data,l,1)= ' ' then
begin
kanal := copy(data, k+1,l-k);
end;
until copy(data,l,1) = ' ';
bem := copy(data,l+2,length(data) - (L +2));
end;
until i = length(data);
