Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por zvf
Y el de seaone, la primera vez se ejecuto bien, pero despues se cicla.
No hay posibilidad de que se "cicle" (me gusta esa palabra, mucho mas adecuada que la que utilizamos por aquí "cuelgue"). Dentro del bucle o se incrementa i o se decrementa Count así que antes o después siempre se sale del bucle. ¿Estas usando el código tal cual o le añades algo mas?
Responder Con Cita
  #2  
Antiguo 01-12-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
Tal cual, mira lo tengo asi, dentro de un boton:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  i,j: integer;
begin
  with TStringList.Create do
  try
    LoadFromFile('c:\visitasweb.txt');
    i:= 0;
    while i < Count do
    begin
      j:= Pos('EMAIL',Uppercase(Strings[i]));
      if j > 0  then
      begin
        Strings[i]:= Copy(Strings[i],j,MAXINT);
        inc(i);
      end else
        Delete(i);
    end;
    SaveToFile('c:\resultado.txt');
    showMessage ('Listo');
  finally
    Free;
  end;
end;

Y nunca me muestra el mensaje de Listo...
Responder Con Cita
  #3  
Antiguo 01-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Pues a mi no se me cicla.
Responder Con Cita
  #4  
Antiguo 01-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Lo único que se me ocurre es que el mensaje si se este mostrando y no lo estas viendo, por eso tu aplicación parece colgada. Prueba quitándolo o poniendo un breakpoint en ese punto.
Responder Con Cita
  #5  
Antiguo 01-12-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
Es que sabes que?

Yo tengo un archivo que mide 12.33 megas, pero una vez lo corri y si me dio el resultado bien, las demas veces se esta tardando mucho, y lo interrumpo.

La primer ocurrencia de Email en el archivo esta en la primer linea, y no deberia tardarse puesto que no recorre todo el archivo.

Lo probe con un archivo mas peque;o y si funciono.

O lo tengo que dejar mas tiempo correr?
Responder Con Cita
  #6  
Antiguo 01-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Empezáramos por ahí. El algoritmo que te puse es muy bonito pero altamente ineficiente para tratar textos tan grandes. Si lo dejas el tiempo suficiente funcionara, pero hay formas mejores de hacerlo.
Responder Con Cita
  #7  
Antiguo 01-12-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
MUCHAS GRACIAS!!

FUNCIONO DE MARAVILLA!!!

Ya obtuve todos los correos que necesitaba.

Pero aun me queda la duda con el algoritmo de bicho, espero que me pueda decir que esta mal en ese codigo

GRACIAS!!!
Responder Con Cita
  #8  
Antiguo 01-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Prueba con algo como esto, debería ser un poco mas rápido:
Código Delphi [-]
var
  i: integer;
  Str: String;
  Source, Dest: TextFile;
begin
  AssignFile(Source,'C:\Origen.txt');
  {$I-}
    Reset(Source);
  {$I+}
  if IOResult = 0 then
  begin
    AssignFile(Dest,'C:\Destino.txt');
    {$I-}
      Rewrite(Dest);
    {$I+}
    if IOResult = 0 then
    begin
      while not Eof(Source) do
      begin
        Readln(Source,Str);
        i:= Pos('EMAIL',Uppercase(Str));
        if i > 0 then
          Writeln(Dest,Copy(Str,i,MAXINT));
      end;
      CloseFile(Dest);
    end;
    CloseFile(Source);
  end;
end;
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sobre Escribir un archivo de texto mangel Varios 7 04-06-2012 22:29:04
Sin saber leer ni escribir D-MO Humor 3 13-09-2006 08:47:43
Como leer un archivo de texto por codigo Shidalis Varios 2 03-09-2005 05:54:34
leer y escribir en BD SqlServer con ADOStoredProc marctonyus Gráficos 1 17-07-2005 22:13:12
Leer un TQuery y armar un archivo de texto Oscar25 Conexión con bases de datos 1 01-09-2004 16:21:51


La franja horaria es GMT +2. Ahora son las 09:29:08.


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