[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