• Miércoles 20 de Noviembre de 2024, 16:26

Autor Tema:  Exportar A Txt  (Leído 4292 veces)

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Exportar A Txt
« en: Jueves 21 de Octubre de 2004, 01:10 »
0
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
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #1 en: Jueves 21 de Octubre de 2004, 22:18 »
0
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
  1.  
  2. var
  3.  
  4.   F: TextFile;
  5.   S: string;
  6. begin
  7.   if OpenDialog1.Execute then          { Display Open dialog box }
  8.   begin
  9.     AssignFile(F, OpenDialog1.FileName);   { File selected in dialog box }
  10.     Reset(F);
  11.     Readln(F, S);                          { Read the first line out of the file }
  12.     Edit1.Text := S;                       { Put string in a TEdit control }
  13.     Writen(F, Edit2.Text);                          { Read the first line out of the file }
  14.     CloseFile(F);
  15.   end;
  16. end;
  17.  

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #2 en: Viernes 22 de Octubre de 2004, 17:10 »
0
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
  1.  
  2. var
  3.  
  4.   F: TextFile;
  5.   S: string;
  6. begin
  7.   if OpenDialog1.Execute then          { Display Open dialog box }
  8.   begin
  9.     AssignFile(F, OpenDialog1.FileName);   { File selected in dialog box }
  10.     Reset(F);
  11.     Readln(F, S);                          { Read the first line out of the file }
  12.     Edit1.Text := S;                       { Put string in a TEdit control }
  13.     Writen(F, Edit2.Text);                          { Read the first line out of the file }
  14.     CloseFile(F);
  15.   end;
  16. end;
  17.  
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;
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #3 en: Viernes 22 de Octubre de 2004, 17:51 »
0
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
  1.  
  2. Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').asString);//como cadena
  3.  
  4. Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').Value);//directo es variant
  5.  
  6. Form1.Table1.FieldByName('Prom1').asFloat;//si lo necesitas como flotante
  7.  
  8.  

3.- sacale las comillas a la variable de tipo cadena prom...

Código: Text
  1.  
  2. Memo1.Lines.Add('prom');
  3.  
  4.  

¿O quieres en el memo esto?

prom
prom
prom
prom
...

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #4 en: Lunes 25 de Octubre de 2004, 16:43 »
0
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
  1.  
  2. Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').asString);//como cadena
  3.  
  4. Memo1.Lines.Add(Form1.Table1.FieldByName('Prom1').Value);//directo es variant
  5.  
  6. Form1.Table1.FieldByName('Prom1').asFloat;//si lo necesitas como flotante
  7.  
  8.  

3.- sacale las comillas a la variable de tipo cadena prom...

Código: Text
  1.  
  2. Memo1.Lines.Add('prom');
  3.  
  4.  

¿O quieres en el memo esto?

prom
prom
prom
prom
...
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 ]
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #5 en: Martes 26 de Octubre de 2004, 00:20 »
0
El problema es que llamas directamente al eof, sin indicar un objeto:

"The Eof function tests whether or not the current file position is the end-of-file. F is a text file variable. If F is omitted, the standard file variable Input is assumed. "

De esta forma no verificas el EOF del dataset del datasource de la tabla sino de la variable de archivo estándar que nada tiene que ver en este caso.

Tendrías que acceder de esta forma:  table.dataSource.dataSet.EOF

Saludos y feliz noche de brujas. :devil:

P.D.

El tag [c o d e]  va sin espacios intermedios.  ;)

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Exportar A Txt
« Respuesta #6 en: Martes 26 de Octubre de 2004, 16:36 »
0
Cita de: "Amilius"
El problema es que llamas directamente al eof, sin indicar un objeto:

"The Eof function tests whether or not the current file position is the end-of-file. F is a text file variable. If F is omitted, the standard file variable Input is assumed. "

De esta forma no verificas el EOF del dataset del datasource de la tabla sino de la variable de archivo estándar que nada tiene que ver en este caso.

Tendrías que acceder de esta forma:  table.dataSource.dataSet.EOF

Saludos y feliz noche de brujas. :devil:

P.D.

El tag [c o d e]  va sin espacios intermedios.  ;)
orale gracias, mi problema se resolvio, gracias tambien por el tiempo, y ten tambien buena noche de brujas!
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)