[Lazarus-es] Lectura de ficheros de texto plano

Maximiliano maximiliano.duarte en gmail.com
Mar Mar 31 17:24:34 CEST 2009


lazarus en differware.net escribió:
> 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;
> //******************************************************//
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>   
Seria interesante que cuentes que BD usas , poruqe MySql tiene funciones 
de importacion directo de texto plano, ahora no lo tengo presente pero 
si googleas lo encontras seguro. A lo sumo tendrias que cambiar los 
tabulados por comas.
Mañana me fijo en el manual de Mysql como se hace y te lo envio.



More information about the Lazarus-es mailing list