Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2010
Rogersito Plus Rogersito Plus is offline
Miembro
 
Registrado: oct 2005
Posts: 35
Poder: 0
Rogersito Plus Va por buen camino
LEER - archivo separado por comas

Gracias por responder amigos, despues de haber leido un poco,,, encontré un código, lo he implementado asi:
Código Delphi [-]
procedure TForm1.ExportClick(Sender: TObject);
var F : TextFile;
begin
  Qprov.Open;
  Qprov.First;
  AssignFile(F,'D:\EXPORT\PROVEE.TXT');
  Rewrite(F);
  while not Qprov.Eof do
    begin
      WriteLn(F, Qprov.FieldByName('ID_PROVEEDOR').AsString + ',' +
              Qprov.FieldByName('RUC').AsString + ',' +
              Qprov.FieldByName('RAZON').AsString + ',' +
              Qprov.FieldByName('DIRECCION').AsString);
      Qprov.Next;
    end;
  CloseFile(F);
  Qprov.Close;
end;

Bueno, eso me sirve muy bien pa' EXPORTAR
ahora para LEER el archivo(SEPARADO POR COMAS) como hago ?
Responder Con Cita
  #2  
Antiguo 09-02-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

¿ Con la utilidad que te sugerí anteriormente ?, ¿ la has mirado ?.

Saludos.
Responder Con Cita
  #3  
Antiguo 09-02-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.081
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Estoy a favor de usar una utilidad o componente como el sugerido por guillotmarc, te lo dan hecho, te facilita el trabajo y te evita errores y dolores de cabeza, por ejemplo, en el código que has puesto, si la dirección tiene una coma... pierdes datos!!!
Código:
WriteLn(F, Qprov.FieldByName('ID_PROVEEDOR').AsString + ',' +
Qprov.FieldByName('RUC').AsString + ',' +
Qprov.FieldByName('RAZON').AsString + ','+
Qprov.FieldByName('DIRECCION').AsString);
Imagina que tienes un registro:
Cita:
ID_PROVEEDOR: 55
RUC: 12345678S
RAZON: HOLAQUETAL
DIRECCION: C/ LAS AMAPOLAS VERDES, 25 - PORTAL 2, IZQUIERDA
Te quedarías con "C/ LAS AMAPOLAS VERDES" y el resto ¿?
Tal vez sea mejor separar por tabuladores, también puedes meter todos los datos entre comillas: "C/ LAS AMAPOLAS VERDES, 25 - PORTAL 2, IZQUIERDA", y buscar comillas en lugar de comas, aunque fallaría si alguien pone: "LLAVE INGLESA DE 2" PULGADAS" ¡¡¡otro error!!!, te quedarías sin " PULGADAS"
Responder Con Cita
  #4  
Antiguo 09-02-2010
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Utiliza esta rutina que elabore hace años para exportar un dataset a un archivo texto.

Código Delphi [-]
//Dado un Dataset exporta el resultado de la consulta a un archivo plano,
//normalmente separado por comas.  El formato de las fechas depende de la
//definicion del parametro global ShortDateFormat que se encuentra en el
//evento DataModuleCreate de FrmDataModulo
function _exportar_datos (var Consulta: TIBDataSet; const nombre_archivo: string; const separador: string; encabezado:boolean) : boolean;
var
  DelimOutput : TIBOutputDelimitedFile;
  F:  TextFile;  //para manejar el archivo y convertir mayusculas a minusculas
  Archivo: File;
  cadena: string;
  Buffer: array[0..1023] of Char;
  funciono: boolean;
begin
  funciono := true;

  if (Consulta.IsEmpty) or (nombre_archivo = '') then
    funciono := false
  else begin
    try
      DelimOutput := TIBOutputDelimitedFile.Create;
      DelimOutput.OutputTitles := encabezado; //true si necesita el archivo plano encabezado
      // Estos son delimitadores de Columna y de fila
      DelimOutput.ColDelimiter := separador;
      // DelimOutput.RowDelimiter := chr(13) + chr(10);
      DelimOutput.Filename := nombre_archivo;
      Screen.Cursor := crHourglass;
      Consulta.DisableControls;
      try
        Consulta.BatchOutput(DelimOutput);
      except
        funciono := false;
      end;
      Consulta.EnableControls;
      Screen.Cursor := crDefault;
    finally
      DelimOutput.Free;
    end;  //try

    //Excel genera un error 'File SYLK error' cuando un archivo empieza por 'ID' mayusculas
    //para solucionarlo, reescribir la linea de encabezado en minusculas
    //ejecutar esta opcion solamente si se indica que se genere encabezado para el archivo
    if encabezado then
      try
        AssignFile(F, nombre_archivo);
        Reset(F);
        Readln(F,cadena);
        CloseFile(F);
        cadena := LowerCase(cadena);
        StrPcopy(buffer,cadena); //permite copiar de un string a un arreglo char (buffer)
        //
        AssignFile(Archivo, nombre_archivo);
        Reset(Archivo,1);
        Seek(Archivo,0);
        BlockWrite(Archivo, buffer,  length(cadena));
        CloseFile(Archivo);
        //Fin arreglo para excel
      except
        funciono := false;
      end;
  end; //del else
  //si no hubo error logro generarse exitosamente la creacion del archivo
  _exportar_datos := funciono;
end;

Forma de uso:

Código Delphi [-]
procedure TFrmExplorador_Tablas.ExportarDatos1Click(Sender: TObject);
begin
 SaveDialog1.Filename :=  'Resultado.txt';
 if SaveDialog1.Execute then begin
      Refresh;
      try
        _exportar_datos(DSConsulta,SaveDialog1.FileName,';',true);
      except
        MessageDlg('No fue posible Exportar los datos', mtWarning, [mbOK], 0);
      end;
   end;
end;

Espero que sea de utilidad.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #5  
Antiguo 12-04-2010
dalsim dalsim is offline
Miembro
 
Registrado: jul 2008
Posts: 47
Poder: 0
dalsim Va por buen camino
HOla hay que poner algo en uses

trato de hacer funcionar tu rutina pero me marca error no

DelimOutput : TIBOutputDelimitedFile
podrias decirme si hay que poner mas componentes en el form o en las uses del progecto y si hay manera de pasarlo directamente a excell con las rutinas que dice el compañero mas arriba las que son comandos FBExport como lo utilizo podrias poner un ejemplo estoy tratando de utilizar un cxgrid de las devExpress gracias
Responder Con Cita
  #6  
Antiguo 12-04-2010
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Debes en la clausula uses adicionar IBSQL, en esta biblioteca esta definida la clase TIBOutputDelimitedFile.

Prueba y si tienes dificultad nos comentas.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #7  
Antiguo 12-04-2010
dalsim dalsim is offline
Miembro
 
Registrado: jul 2008
Posts: 47
Poder: 0
dalsim Va por buen camino
siguen te error

indeclarado identificador
SaveDialog1.Filename := 'Resultado.txt';
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 datos de firebird a archivo de texto capo979 Firebird e Interbase 37 17-08-2007 14:45:14
Importar archivo de texto rtf para un adotable mairelr Conexión con bases de datos 0 24-12-2006 16:13:58
Importar a SQL desde Archivo de Texto erasmorc MS SQL Server 8 03-06-2005 20:39:04
Importar archivo de texto trabuc Varios 3 01-12-2004 11:40:22
exportar data a archivo de texto morfeo21 Varios 2 13-06-2003 17:07:23


La franja horaria es GMT +2. Ahora son las 13:51:13.


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