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
[-]
strict private
FCount: Integer;
FTextFile: TextFile;
FFilePath: string;
...
AssignFile(FTextFile, FFilePath);
try
Reset(FTextFile);
CountLines;
Reset(FTextFile);
LCurrent := 0;
Readln(FTextFile, LString);
Inc(LCurrent);
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