Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
como exportar una tabla paradox a un archivo plano

si alguien me puede colaborar necesito exportar una tabla en paradox por medio de dephi a un archivo plano he mirado por muchos lados y no he podido realizar esta operación la verdad no conozco delphi y por eso es tan complicado
Responder Con Cita
  #2  
Antiguo 23-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola hamer, bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

No entiendo a que te refieres con "archivo plano" ¿ A un archivo de texto ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 23-02-2013
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.757
Poder: 21
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Básicamente debes conectarte a la tabla y recorrerla hasta que no haya mas elementos.
Para cada elemento escribes los datos en un fichero.
Código Delphi [-]
AssignFile(F, 'TextoPlano.txt');
Rewrite(F);
tabla.Open;
while (not tabla.EOF) do
begin
   WriteLn(F, tabla.FieldByName('CAMPO1').AsString + ', '+ tabla.FieldByName('CAMPO2').AsString + ...);
end;
CloseFile(F);
Responder Con Cita
  #4  
Antiguo 25-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
yo estoy manejando delphi 4 ya que es el único que tengo y al compilar este código en la primer linea me sale el siguiente error unknown identifier le cambie la F a C que creo que es donde se ubicaría el archivo, no se si deba de usar otro delphi donde estén estas funciones o si es que estoy colocando el código donde no es, yo lo que hice fue utilizar en data access puse una tabla y lo conecte seleccionando los nombres de la tabla y puse un data source que leí que así se conectaba entonces nada mas ingreso el código en un archivo que se genera llamado unit.pas, pero estoy como perdido muy perdido


Código Delphi [-]
AssignFile(F, 'TextoPlano.txt'); ////aquí me sale un error
Rewrite(F);
tabla.Open;
while (not tabla.EOF) do
begin
   WriteLn(F, tabla.FieldByName('CAMPO1').AsString + ', '+ tabla.FieldByName('CAMPO2').AsString + ...);
end;
CloseFile(F);

Última edición por ecfisa fecha: 25-02-2013 a las 17:32:06. Razón: Corregir problema WYSIWYG
Responder Con Cita
  #5  
Antiguo 25-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola hamer.

Proba de este modo:
Código Delphi [-]
...
var
  F: TextFile;
begin
  AssignFile(F, 'TextoPlano.txt');
  Rewrite(F);
  tabla.Open;
  while (not tabla.EOF) do
  begin
    WriteLn(F, tabla.FieldByName('CAMPO1').AsString + ', '+ tabla.FieldByName('CAMPO2').AsString) + ...);
    tabla.Next;  // registro siguiente
  end;
  tabla.Close;
  CloseFile(F);
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 25-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
ahora si reconoce el código pero al correrlo sale esto este error Runtime error 202 at 0001:28CA y se cierra
Responder Con Cita
  #7  
Antiguo 25-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por hamer Ver Mensaje
ahora si reconoce el código pero al correrlo sale esto este error Runtime error 202 at 0001:28CA y se cierra
Hola hamer.

El error 202 (Fatal errors), con seguridad no lo está provocando el código anterior.
Es muy probable que en algún punto de tu programa estés realizando alguna llamada que provoca un ciclo infinito.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 25-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
tenias razón con lo del ciclo infinito cuando lo pongo a correr ya no salen errores pero sale el form en blanco y no se si esta realizando la acción y si es así donde se pondría el archivo ya en .txt gracias por la ayuda
Responder Con Cita
  #9  
Antiguo 25-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por hamer Ver Mensaje
tenias razón con lo del ciclo infinito cuando lo pongo a correr ya no salen errores pero sale el form en blanco y no se si esta realizando la acción y si es así donde se pondría el archivo ya en .txt gracias por la ayuda
Hola hamer.

Para mostrarlo en el form, podrías hacer:
Código Delphi [-]
  Memo1.Lines.LoadFromFile('TextoPlano.txt');

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 26-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
Muchas gracias me sirvió mucho el código exporta muy bien a txt pero una ultima cosa es como un poco lento no se si es por la cantidad de datos de la tabla que tengo que pasar, si es posible hacerlo mas rápido o es así en general
Responder Con Cita
  #11  
Antiguo 26-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
aunque ahora que miro no es que este lenta sino que no quiere exportar esa tabla no se si es por el password que tiene que no deja exportar, ya que cree una tabla nueva y esta si me exporto sin ningún problema pero la que necesito no lo realiza.
Responder Con Cita
  #12  
Antiguo 27-02-2013
hamer hamer is offline
Registrado
NULL
 
Registrado: feb 2013
Posts: 9
Poder: 0
hamer Va por buen camino
Muchas gracias de verdad me sirvió mucho el error que tenia era algo sencillo por copiar mal una cosa pero esta exportando perfecto gracias por la colaboración
Responder Con Cita
  #13  
Antiguo 20-03-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 416
Poder: 15
bulc Va por buen camino
Sácalo por impresora en archivo de texto.

Se te ha olvidado una opción sencilla. Es colocar un módulo de impresión y seleccionar como salida un archivo. De esta forma te quedará bien colocado. Ah... y con la posibilidad de ordenarlo a tu gusto según el criterio que impongas como índice. Más vale tarde que nunca.
Bulc
Responder Con Cita
  #14  
Antiguo 18-08-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 18
radenf Va por buen camino
Hola amigos:

He adaptado el código de ecfisa para exportar los datos de una tabla de Access a un archivo de texto y funciona a la perfección.
Necesito hacer la operación inversa, es decir exportar los datos del archivo de texto a una tabla de Access, pero no he podido dar con el código. Me quedé pegado asignando los datos a un Stringlist y no he logrado asignar los datos a los campos de la tabla.
¿Puede alguien echarme una mano?
Saludos y muchas gracias
Responder Con Cita
  #15  
Antiguo 18-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola randenf.

Fijate si te sirve de este modo:
Código Delphi [-]
procedure ExportToText(const aFileName: TFilename; aDataSet: TDataSet); //(o TADODataSet, etc ...)
var
  F: TextFile;
  i: Integer;
  s: string;
begin
  AssignFile(F, aFileName);
  Rewrite(F);
  aDataSet.Open;
  while (not aDataSet.EOF) do
  begin
    s := '';
    for i := 0 to aDataSet.FieldCount-1 do
      s := s + aDataSet.Fields[i].AsString +',';
      SetLength(s, Length(s)-1);
    Writeln(F, s);
    aDataSet.Next;
  end;
  aDataSet.Close;
  CloseFile(F);
end;

procedure ImportFromText(const aFileName: TFileName; aDataSet: TDataSet); //(o TADODataSet, etc ...)
var
  TS1, TS2: TStrings;
  i, j: Integer;
begin
  aDataSet.Open;
  TS1 := TStringList.Create;
  try
    TS1.LoadFromFile(aFileName);
    for i := 0 to TS1.Count-1 do
    begin
      try
        TS2 := TStringList.Create;
        ExtractStrings([','], [], PChar(TS1[i]), TS2);
        aDataSet.Append;
        for j := 0 to aDataSet.FieldCount-1 do
          aDataSet.Fields[j].AsString := TS2[j];
        aDataSet.Post;
      finally
        TS2.Free;
      end;
    end;
  finally
    TS1.Free;
    aDataSet.Close;
  end;
end;

Ejemplo llamadas:
Código Delphi [-]
 ExportToText('C:\Export.txt', DataSet);
 ...
 ImportFromText('C:\Export.txt', DataSet);

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #16  
Antiguo 18-08-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 18
radenf Va por buen camino
Muchas gracias Daniel.
Lo probaré y te cuento.
Saludos

Iván
Responder Con Cita
  #17  
Antiguo 18-08-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 18
radenf Va por buen camino
Funcionó perfecto.
Modifiqué las llamadas para poder sobreescribir la tabla y que no me arrojara excepciones por duplicar índices.

Para guardar el archivo:

Código Delphi [-]
procedure TFormConfiguracion.bsSkinButton1Click(Sender: TObject);
var
SpecialFolder: integer;
begin
SpecialFolder := CSIDL_PERSONAL;
Label5.Caption := GetSpecialFolderPath(SpecialFolder) ;
SaveDialog1.InitialDir:= Label5.Caption;
SaveDialog1.FileName:= 'Servidores Dicom';
if SaveDialog1.Execute then
ExportToText(SaveDialog1.FileName, DataSourceServidores.DataSet);
end;

y para cargar el archivo:

Código Delphi [-]
procedure TFormConfiguracion.bsSkinButton3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
try
Data1.TablaServidores.Edit;
ADOQuery3.Close;
ADOQuery3.SQL.Text:= ' Delete * from Servidores ';
ADOQuery3.ExecSQL;
finally
ImportFromText(OpenDialog1.FileName, DataSourceServidores.DataSet);
Data1.TablaServidores.Close;
Data1.TablaServidores.Open;
Data1.TablaServidores.Refresh;
DBAdvGrid3.Update;
end;
end;

Me arroja sin embargo el siguiente warning y no entiendo por qué.
[DCC Warning] Configuracion.pas(674): W1036 Variable 'TS2' might not have been initialized

Saludos Daniel y muchas gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
exportar tabla paradox a Mysql en servidor tec4eso MySQL 5 15-05-2011 00:41:16
Exportar datos de tabla paradox a Excel Alexandro Tablas planas 3 04-07-2008 13:54:36
Revision en segundo plano de una tabla paradox chrids506 Conexión con bases de datos 5 03-03-2007 18:37:51
De archivo plano a paradox Jorge Taveras Tablas planas 0 01-03-2005 05:18:06
exportar una tabla de oracle 9i a paradox o firebird ARCON Oracle 1 28-10-2004 10:38:22


La franja horaria es GMT +2. Ahora son las 08:47:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi