Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Archivo TXT sobredimensionado

Hola a todos

A ver si alguien me ayuda

Como puedo cargar un archivo de texto que pesa sobre los 2GB anlizar linea por linea si existe coincidencia con un listado de frases o palabras y en el caso que coincidan poder eliminar la linea del archvio txt y salvarlo

Desde ya gracias a todos
Responder Con Cita
  #2  
Antiguo 05-01-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Has intentado de ésta forma??
Sasludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 05-01-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias por tu respuesta. lo anailzaré. aunque no trata el tema de eliminar lineas. no se tampoco si se podrán cargar tantas lineas en un TMemo para hacer la comparacion, si coinciden con las palabras eliminar las lieneas del TMemo y volver a grabar el archivo txt.
Responder Con Cita
  #4  
Antiguo 05-01-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Probado no resulta cargarlo en un TMemo, parece por el tamaño da un error de out of memory
Responder Con Cita
  #5  
Antiguo 05-01-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Existirá algun componente tipo TMemo que asimile cantidades enormes de lineas, por ejemplo cientos de miles ?
Responder Con Cita
  #6  
Antiguo 05-01-2011
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Mira en el help la clase TStringStream..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #7  
Antiguo 05-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola cmfab.

Si no se puede trabajar en memoria por el tamaño, te va a quedar hacerlo en disco.

Una forma simple sería:
.Crear un archivo destino.
.Leer las línea del origen
.Copiarlas si coinciden con un criterio
.Borrar archivo origen
.Renombrar archivo destino como origen

Un ejemplo muy simplificado:
Código Delphi [-]
function CopiarLinea(Linea: string): Boolean;
begin
  // Aca van las evaluaciónes que tengas que hacer, uso cualquiera para darle funcionalidad al código 
  Result:= False;
  if Pos('el verde prado', Linea) = 0 then // si no contiene la frase 'el verde prado', se copia
    Result:= True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  f1,f2: TextFile;
  Linea: string;
begin
  AssignFile(f1, 'C:\Origen.txt');
  Reset(f1);
  AssignFile(f2, 'C:\Destino.TXT');
  Rewrite(f2);
  while not Eof(f1) do
  begin
    Readln(f1,Linea);
    if CopiarLinea(Linea) then
      Writeln(f2, Linea);
  end;
  CloseFile(f1);
  CloseFile(f2);
  if DeleteFile('C:\Origen.txt') then
    RenameFile('C:\Destino.TXT', 'C:\Origen.txt');
end;

Si la aplicación va a ser usada con mucha frecuencia hay métodos más eficientes, pero para un uso moderado te va a funcionar.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 05-01-2011 a las 23:07:34.
Responder Con Cita
  #8  
Antiguo 06-01-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias por sus respuiesta. funcionó correctamente el código propuesto. claro este pequeño programa se utilizará solo esporádicamente. muhcas gracias a todos
Responder Con Cita
Respuesta



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
llamar un archivo asi '192.168.1.1:\ruta\archivo.frf' IVAND Varios 5 12-04-2008 16:18:54
no puedo abrir un archivo con ShellExecute si el archivo es variable belpab API de Windows 2 28-11-2007 16:24:22
Filosofia/Manejo archivo "cds" Archivo.cds!! Martín González Conexión con bases de datos 1 03-05-2007 00:14:23
envio de archivo con el componente envio de archivo joel20 JAVA 1 04-08-2006 10:28:53
Archivo *.rsm tgsistemas Varios 4 15-09-2004 11:21:06


La franja horaria es GMT +2. Ahora son las 13:43:40.


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