Ver Mensaje Individual
  #13  
Antiguo 31-01-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Reputación: 17
DriverOp Va por buen camino
Cita:
Empezado por Gean Ver Mensaje
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; // while
      end; // if
  end // if
    else Result:=0;
end;

procedure TForm2.IdIRC1NicknamesListReceived(ASender: TIdContext;
  const AChannel: string; ANicknameList: TStrings);
var
  Str: string;
  n: integer;
begin
  Str:=ANicknameList.Strings[1]; { Según el código es el string en la posición 1 el que te interesa }
  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.
Responder Con Cita