Cita:
Empezado por Gean
claro, pero con ese codigo me devuelve lo que te he puesto en el mensaje anterior, lo que me gustaria es que se quedasen en lineas distintas en un memo, o preferiblemente en items diferentes en un list Box
|
Ah, comprendo, parece que ANicknameList devuelve todos los nicks de un canal en una línea y en la siguiente línea los de otro canal y así sucesivamente.
Pues habrá que parsear el string donde están los nicks que te interesan, digo yo. Me parece extraño pero no tengo Indy10 para probar lo que dices. Como sea, este código te puede ayudar a parsear la cadena que tiene los nicks:
Código Delphi
[-]
function GetToken(Cadena:string; Separador:char; Token:integer):string;
var
Posicion:integer;
begin
while Token > 1 do begin
Delete(Cadena,1,Pos(Separador,Cadena));
Dec(Token);
end;
Posicion:=Pos(Separador,Cadena);
if Posicion=0 then
Result:=cadena
else
Result:=Copy(Cadena,1,Posicion-Length(Separador));
end;
function GetTokenCount(Cadena:string; Separador:char):integer;
var
Posicion:integer;
begin
Posicion:=Pos(Separador,Cadena);
Result:=1;
if Cadena <> '' then
begin
if Posicion <> 0 then
begin
while Posicion <> 0 do
begin
Delete(Cadena,1,Posicion);
Posicion:=Pos(Separador,Cadena);
Inc(Result);
end; end; end else Result:=0;
end;
procedure TForm2.IdIRC1NicknamesListReceived(ASender: TIdContext;
const AChannel: string; ANicknameList: TStrings);
var
Str: string;
n: integer;
begin
Str:=ANicknameList.Strings[1];
for n:=1 to GetTokenCount(Str,' ') do
Memo1.Lines.Append(GetToken(Str,' ',n));
end;
En el TMemo obtendrás algo más que los nicks pero supongo que sabrás qué hacer con el resto.