Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2013
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Pasar datos de un DBGrid a Txt Tabulado

Hola compañeros como puedo pasar los datos de un dbgrid a un archivo txt tabulado por columnas en lazarus?
he visto este hilo del maestro ecfisa AQUI

Pero necesito la "traduccion" de la sintaxis a lazarus.. por ej.

DBGrid1.FieldCount no existe en lazarus, pero se reemplazaria con DBGrid1.Columns.Count

Luego...

Muchas gracias!
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #2  
Antiguo 17-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 daragor.

Eso de maestro ... Digamos que apenas si llego a aprendiz avanzado...

El problema que veo con usar DBGrid1.Columns.Count, es que se podrían crear menos columnas que las que existen en la tabla...

Modifiqué un poco el código que mencionas, lo probé en Lazarus y creo que funciona como se espera.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  BM: TBookMarkStr;
  i: Integer;
  s: string;
  ArchTexto: TextFile;
begin
  // Asociar un nombre de archivo a una variable de tipo File
  AssignFile(ArchTexto,'C:\A_LA_DERECHA.TXT');
  // Crear un archivo, abrirlo
  Rewrite(ArchTexto);
  // Guardar posición actual del DataSet
  BM:= DBGrid1.DataSource.DataSet.Bookmark;
  // Desactivar el mostrado en los controles data-aware asociados al DataSet
  DBGrid1.DataSource.DataSet.DisableControls;
  // Posicionarnos en el primer registro del DataSet
  DBGrid1.DataSource.DataSet.First;
  // Mientras el DataSet tenga registros...
  while not DBGrid1.DataSource.DataSet.Eof do
  begin
    s:= ''; // Inicializar cadena a vacío
    for i:= 0 to DBGrid1.DataSource.DataSet.FieldCount - 1 do  // desde el 1er al último campo
    begin
      // Concatenar en 's' cada campo con tantos espacios a la izquierda
      // como le falten al largo actual del campo para llegar al largo declarado
      s:= s + StringOfChar(' ', DBGrid1.DataSource.DataSet.Fields[i].DisplayWidth -
                           Length(DBGrid1.DataSource.DataSet.Fields[i].AsString)) +
                           DBGrid1.DataSource.DataSet.Fields[i].AsString;
    end;
    // Guardar el campo ajustado en el archivo de texto
    Writeln(ArchTexto, s);
    // Desplazarnos al próximo registro del DataSet
    DBGrid1.DataSource.DataSet.Next;
  end;
  // Cerrar archivo.
  CloseFile(ArchTexto);
  // Volver a posición previamente guardada del DataSet
  DBGrid1.DataSource.DataSet.Bookmark:= BM;
  // Activar el mostrado en los controles data-aware asociados al DataSet
  DBGrid1.DataSource.DataSet.EnableControls;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 17-05-2013
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Compañero ecfisa.. tengo este error al compilar

xxx Error: Identifier not found "TBookmarkStr"

Evidentemente, no es usado en lazarus como tal.. creo q puede reemplazarse por string
Lo que si, el archivo txt se logra, pero el diseño es un lio de palabras salteadas por toda la hoja.. no creo q este funcionando lo de la tabulacion...
__________________
Mi Blog: Webscom (Software libre)

Última edición por daragor fecha: 17-05-2013 a las 18:12:17.
Responder Con Cita
  #4  
Antiguo 17-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 daragor.

No puedo explicar lo que te sucede, claro que eso pasa por no ser experto en Lazarus .

¿ Será la versión o alguna actualización que hayas echo? (Yo lo tengo tal cuál lo descargué)

Mira:


Con este resultado:


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-05-2013
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Quizas no se, se debe a la fuenta usada en el bloc de notas..
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #6  
Antiguo 23-05-2013
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Existe el componente CSVExporter (viene preinstalado en Lazarus Codetyphon) y es muy simple de usar:

Código Delphi [-]
procedure TFExportar.BitBtn1Click(Sender: TObject); // Iniciar exportación
begin
  With CSVExporter1 Do
    Begin
      DataSet := Mi_dataset;
      FileName := 'archivo.txt';
      // Opciones avanzadas
      FromCurrent := CheckBox1.Checked;                    // Desde la posición actual
      FormatSettings.FieldDelimiter := LabeledEdit1.Text;  // Delimitador de campos
      FormatSettings.StringQuoteChar := LabeledEdit2.Text; // Cadenas
      //
      Execute;
      ShowMessage('Finalizó la exportación a un archivo de texto.');
    end;
end;
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
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
Pasar datos de un DBGrid a otro DBGrid lucas05 Varios 13 29-01-2015 21:52:50
Pasar datos de un DBGrid a otro DBGrid c++ Builder 6 dmartinezn C++ Builder 13 13-03-2012 13:50:47
Pasar Datos De Dbgrid A Otro Helg17 Tablas planas 7 27-03-2009 10:16:37
Pasar datos de un DBGrid a un Edit deadsystems Varios 7 11-03-2007 21:31:36
Pasar datos desde un DBGrid jdangosto OOP 2 19-02-2005 16:55:37


La franja horaria es GMT +2. Ahora son las 03:25:26.


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