[Lazarus-es] Lectura de ficheros de texto plano

lazarus en differware.net lazarus en differware.net
Mar Mar 31 17:05:54 CEST 2009


Buenas lista.

Tengo un problemilla que me trae un pelin perdido. Funcionar 
funcionar... funciona. Pero me gustaría optimizarlo si es posible.

El caso es que tengo que importar a una base de datos un fichero de 
texto plano con lineas del tipo:

A80108#121061411#31/12/2007#00:01:06#1111111#NAT#XX#P#A#MV#0#0#.15

(los # son TABuladores)

En principio, la rutina que os pongo más abajo iba bastante bien cuando 
los ficheros tenían un tamaño pequeño-mediano... Ahora con 162370 el que 
menos, la verdad es que se vuelve bastante lento...

Me preguntaba si a vosotros se os ocurriría algo para mejorar esto...
Gracias!


//******************************************************//
procedure TfrmMain.Importar(ruta_fichero: string);
var
   sl, slFila: TStringList;
   linea, columna: integer;
begin
   sl     := TStringList.Create;
   slFila := TStringList.Create;
   slFila.Delimiter := #9; 	// TABULADOR

   try
     // cargo el fichero
     sl.LoadFromFile(ruta_fichero);

     for linea := 0 to sl.Count - 1 do
     begin
       // cargo la linea en el stringlist
       slFila.DelimitedText := sl[linea];

       // aqui ya tengo el slFila "partido" en columnas,
       // por lo que puedo acceder a cada campo de la forma:
       //      campo0 = slFila[0];
       //      campoX = slFila[X];
       //
       // y procesar cada linea...
     end;
   finally
     slFila.Free;
     sl.Free;
end;
//******************************************************//




More information about the Lazarus-es mailing list