Ver Mensaje Individual
  #15  
Antiguo 30-10-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
si estas usando el codigo de daniel, la variable s es un string, los string (que es un alias de UnicodeString) en delphi si mal no recuerdo crecen hasta 2 gb, no sera ahi el problema?

archivos de 200mb no son muy grandes, yo hago la lectura usando el "old pascal i/o" y anda fenomenal, de hecho retroalimento la ui lo cual hace mas lento el procesamiento del archivo pero queda mas lindo

Es mas hasta incluso cometo la "estupides" de contar la cantidad de lineas para poder mostrar algo como "procesado x/CantLineas % completado"

Código Delphi [-]
// variables de instancia de la clase que procesa el archivo
strict private
    FCount: Integer;
    FTextFile: TextFile;
    FFilePath: string;

...
  AssignFile(FTextFile, FFilePath);

  try
    Reset(FTextFile);
    CountLines;
    { este seria el proceso contar lineas 
    procedure CountLines;
    begin
      FCount := 0;
      while not Eof(FTextFile) do
      begin
        Readln(FTextFile);
        Inc(FCount);
      end;
    end; }
    Reset(FTextFile);
    LCurrent := 0;

    Readln(FTextFile, LString);
    Inc(LCurrent);
    // procesar linea 
  finally
    CloseFile(FTextFile);
  end;

El archivo en cuestion tiene casi 200mb y unas 3,3 millones de lineas
El proceso de arriba en cuestion, incluyendo el conteo de lineas, el procesamiento interno, el guardado en la BD y teniendo en cuenta que retroalimenta la gui me demora unos 2, 3 min

Última edición por AgustinOrtu fecha: 30-10-2015 a las 06:27:16.
Responder Con Cita