Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Hola Kamikaze,

El TStringList, como su nombre lo indica, es una lista de string.

La primera parte del ódigo que escribí es solo la declaración y la creación del objeto, no tiene más.

El método Add, permite agregar texto al objeto, en este caso agregamos todo lo que recibiste desde Socket.ReceiveText.

Pero como a vos te interesa previamente convertir los caracteres de fin de línea para que sean compatible con windows usamos la función AdjustLineBreaks.

De esta forma tenemos cargado nuestro StringList, con todo el texto de la pagina web separada en líneas como querias.

Luego puedes acceder a la línea que te interese:

Código Delphi [-]
Edit1.Text := Lineas.Strings[NumeroLinea];

Suerte
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 11-07-2005
Kamikaze Kamikaze is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
Kamikaze Va por buen camino
Ahora lo comprendo, gracias por todo Crandel!!!

Pero creo que el programa delphi no....

Me sale un error:

"Project Project1.exe raised exception class EStringListError with message
'List index out of bounds (1)' "
Responder Con Cita
  #3  
Antiguo 11-07-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
chekeaste no estar leyendo una línea que no existe?
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 12-07-2005
Kamikaze Kamikaze is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
Kamikaze Va por buen camino
He provado con mas de 25 lineas existentes y siempre me aparece lo mismo
Responder Con Cita
  #5  
Antiguo 12-07-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
yo me equivoque, cambia la linea

Código Delphi [-]
Lineas.Add(AdjustLineBreaks(Socket.ReceiveText));

por

Código Delphi [-]
Lineas.AddStrings(AdjustLineBreaks(Socket.ReceiveText));

te estaba agregando una sóla linea, por eso el error.
__________________
[Crandel]
Responder Con Cita
  #6  
Antiguo 13-07-2005
Kamikaze Kamikaze is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
Kamikaze Va por buen camino
Hola otra vez!!!

¿Tendría que quedar más o menos asi?

Es que me sale un error:

"Incompatible types: 'TStrings' and 'String' "


Código PHP:
procedure TCliente_Ogame.ClientSocket2Read(SenderTObject;
  
SocketTCustomWinSocket);
var
LineasTStringList;
begin
   Lineas 
:= TStringList.Create;
   
Lineas.AddStrings(AdjustLineBreaks(Socket.ReceiveText));
   
Edit1.Text := Lineas.Strings[13];
end
P.D.: Y pensaba que se solucinaría facil todo este problema......
Responder Con Cita
  #7  
Antiguo 13-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por Crandel
yo me equivoque, cambia la linea

Código Delphi [-]
Lineas.Add(AdjustLineBreaks(Socket.ReceiveText));

por

Código Delphi [-]
Lineas.AddStrings(AdjustLineBreaks(Socket.ReceiveText));

te estaba agregando una sóla linea, por eso el error.
Mmmmm... AddStrings requiere que el parámetro pasado sea un TStrings, por lo que Add es el método apropiado para el resultado de la función AdjustLineBreaks.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 13-07-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 24
Mick Va por buen camino
Solo comentar que usar AdjustLineBreaks antes de asignar los
textos a un TStrings es marear la perdiz, una perdida de ciclos
de cpu ya que no es necesario.
Un objeto TStrings o derivado de él como un TStringList
o el mismo Lines de un TMemo, entiende perfectamente y
separa las lineas de los textos que tengan solo el
caracter #10 o solo el caracter #13.
De modo que basta asignar el contenido al
TStrings (con Add por ejemplo) y listo.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:23:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi