Programación General > Delphi
Exportar A Txt
mustang:
ke tal keria ver si alguien puede ayudarme a encontrar la manera de exportar datos ke almaceno en un par de tablas:
tengo un par de tablas unidas con una sola llave, y lo k necesito es que cuando el usuario lo kiera pueda sacar los datos de esas tablas en un archivo de texto plano para poderlo abrir en excel, muchas gracias hasta pronto
Amilius:
Primero busca si la biblioteca de clases que utilizas tiene algún método para exportar la base de datos a texto, sino...
Supongo que no tienes problemas para acceder a los datos de la tabla, por tupla y luego por cada campo.
Usa las funciones de archivos de texto que son las mismas de pascal con los nombres algo más específicos para guardar un archivo .txt
No es cosa del otro mundo y es rápido y simple... podrías preparar cada linea de texto a guardar a partir de los campos de un tupla. Recorriendo la tabla de principio a fin.
Usar archivos de texto u cadenas en delphi es extremadamente simple. Y mejor si te consigues una biblioteca de funciones extra para cadenas para hacer todo tipo de operaciones con las cadenas como en PHP.
--- Código: Text --- var F: TextFile; S: string;begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); { File selected in dialog box } Reset(F); Readln(F, S); { Read the first line out of the file } Edit1.Text := S; { Put string in a TEdit control } Writen(F, Edit2.Text); { Read the first line out of the file } CloseFile(F); end;end;
mustang:
--- Cita de: "Amilius" --- Primero busca si la biblioteca de clases que utilizas tiene algún método para exportar la base de datos a texto, sino...
Supongo que no tienes problemas para acceder a los datos de la tabla, por tupla y luego por cada campo.
Usa las funciones de archivos de texto que son las mismas de pascal con los nombres algo más específicos para guardar un archivo .txt
No es cosa del otro mundo y es rápido y simple... podrías preparar cada linea de texto a guardar a partir de los campos de un tupla. Recorriendo la tabla de principio a fin.
Usar archivos de texto u cadenas en delphi es extremadamente simple. Y mejor si te consigues una biblioteca de funciones extra para cadenas para hacer todo tipo de operaciones con las cadenas como en PHP.
--- Código: Text --- var F: TextFile; S: string;begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); { File selected in dialog box } Reset(F); Readln(F, S); { Read the first line out of the file } Edit1.Text := S; { Put string in a TEdit control } Writen(F, Edit2.Text); { Read the first line out of the file } CloseFile(F); end;end;
--- Fin de la cita ---
lo ke pasa es ke tengo como esto pero me da un error EInOutError y no logro componerlo, si me pudieran ayudar con esto estaria muy bien, gracias
procedure TForm4.Button1Click(Sender: TObject);
var prom:String;
begin
form1.Table1.first;
while not Eof do
begin
prom:=FloatToStr(Form1.Table1.FieldByName('Prom1').Value);
Memo1.Lines.Add('prom');
form1.Table1.next;
end;
end;
Amilius:
Para el foro el codigo ponlo entre "[ C O D E ][/ C O D E ]" usando el boton del mismo nombre al lado de quote y list, para que sea legible y no se vea un asco.
1.- ¿Cual es el numero y mensaje de error?,
Delphi tiene el "try except", usalo y en except muestra en pantalla el error eso lo obtienes con la propiedad ErrorCode del EInOutError. Sabiendo EXACTAMENTE cual es el error tal vez de des cuenta inmediatamente que hay que modificar.
2.- Value es un "variant", asi que mejor te aseguras que puedas accederlo directamente asi o tal vez usar mejor un ".asFloat" o como veas conveniente. Fijate en la ayuda para más detalles.
Ejemplo:
--- Código: Text --- Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').asString);//como cadena Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').Value);//directo es variant Form1.Table1.FieldByName('Prom1').asFloat;//si lo necesitas como flotante
3.- sacale las comillas a la variable de tipo cadena prom...
--- Código: Text --- Memo1.Lines.Add('prom');
¿O quieres en el memo esto?
prom
prom
prom
prom
...
mustang:
--- Cita de: "Amilius" --- Para el foro el codigo ponlo entre "[ C O D E ][/ C O D E ]" usando el boton del mismo nombre al lado de quote y list, para que sea legible y no se vea un asco.
1.- ¿Cual es el numero y mensaje de error?,
Delphi tiene el "try except", usalo y en except muestra en pantalla el error eso lo obtienes con la propiedad ErrorCode del EInOutError. Sabiendo EXACTAMENTE cual es el error tal vez de des cuenta inmediatamente que hay que modificar.
2.- Value es un "variant", asi que mejor te aseguras que puedas accederlo directamente asi o tal vez usar mejor un ".asFloat" o como veas conveniente. Fijate en la ayuda para más detalles.
Ejemplo:
--- Código: Text --- Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').asString);//como cadena Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').Value);//directo es variant Form1.Table1.FieldByName('Prom1').asFloat;//si lo necesitas como flotante
3.- sacale las comillas a la variable de tipo cadena prom...
--- Código: Text --- Memo1.Lines.Add('prom');
¿O quieres en el memo esto?
prom
prom
prom
prom
...
--- Fin de la cita ---
El error ke me manda es "EInOutError I/O error 6", me lo pone en la linea ke pongo a continuacion:
[ C O D E ]
procedure TForm4.Button1Click(Sender: TObject);
var prom:String;
begin
form1.Tabla1.first;
while not Eof do //***AKI ES DONDE ME MARCA EL ERROR****
begin
prom:=FloatToStr(Form1.Tabla1.FieldByName('Prom1').Value);
Memo1.Lines.Add('prom');
Memo1.Lines.Add(Form1.tbencuesta.FieldByName('Prom1').Value.AsString);
form1.tbencuesta.next;
end;
end;
[/ C O D E ]
Navegación
[#] Página Siguiente
Ir a la versión completa