Leer fichero de texto usando TDatabase o TTable

Guardo una determinada informacion de una aplicacion en un fichero de texto con campos delimitados por ;. Me gustaría leer ese fichero usando un componente TDatabase o TTable. ¿Cómo puedo hacerlo?
3

3 respuestas

Respuesta
1
Pues la verdad es que ni el TDatabase ni el TTable tienen métodos que te permitan importar datos.
Tú tienes un fichero generado en formato CSV. Los registros de este tipo de ficheros pueden ser cargados en una TStringList mediante la propiedad CommaText. Lo que debes hacer es algo como:
// cargamos el archivo
archivo := TStringList.Create;
archivo.LoadFromFile('miarchivo.csv');
// usaremos l para cargar cada registro
l := TStringlist.create;
for i := 0 to archivo.count -1 do begin
l.CommaText := archivo;
// ahora cada elemento de l es un campo
Tabla.Append;
for j := 0 to l.Count - 1 do begin
Tabla.Fields[j].AsString = l[j];
end;
Tabla.Post;
end;
archivo.free;
Respuesta
1
Hay una forma usando TBatchMove pero nunca conseguí hacerlo andar. La dificultad reside en como setear el delimitador y el tipo y cantidad de campos. ¿Es decir si todas las lineas tienen 4 comas y una tiene 5 es un error del archivo o es una tabla de 5 campos y todas menos una tienen ese campo en null? Complicado.
Te recomiendo levantar el archivo con un TStringList, e ir parseandolo y llenando los campos de un ClientDataSet. Si quieres volver a utilizarlo puedes si salvar el ClientDataSet a disco (salva un xml)y luego volver a levantarlo.
Respuesta
1
Si se puede Utiliza un TTable y en la propiedad DataBaseName pones la ruta donde esta el txt ejemplo c:\Archivos, solo la ruta, luego en TableName ahí pones el nombre del archivo solo el nombre sin extensión.
Pero antes cambias la propiedad TableType=ttASCII al cambiar esta propiedad automáticamente en el combo del TableName ahí deberán aparecer todos los archivos texto que tengas en la ruta indicada.
Y listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas