PDA

Ver la Versión Completa : Convetir us stringgrid en txt


jhcaboverde
28-02-2007, 22:56:53
Estoy creando una aplicacion de revisiones en tablas que me esta quedando buenisima sin embargo no la he puesto en uso porque uno de los usuarios me pidio que el resultado de toda la revision que queda en un dbgrid lo lleve a un txt y que se enviara por correo.

roman
28-02-2007, 23:35:52
Todo dependerá de que es lo que el usuario entiende por pasar a un txt y de que te decidas entre un stringgrid (como en el título de tu mensaje) y un dbgrid (como en el texto de tu mensaje).

Si estamos hablando de un dbgrid y suponiendo que lo que deseas es exportar a un formato de valores separados por comas (CSV) u otro delimitador, o bien campos de ancho fijo, te recomiendo que uses la componente TDataToAscii del paquete ExportSuite del compañero Federico, que podrás encontrar en su página (http://www.delphi.com.ar).

Esa componente la conectas directamente con el dataset que alimenta a tu dbgrid y ajustas sus propiedades en el inspector de objetos. En código, simplemente abres el dataset y usas el método SaveToFile de la componente para guardar en formato de texto.

// Saludos

jhcaboverde
01-03-2007, 16:56:49
lo que necesito es exportar los datos que contiene un stringgrid o un dbgrid a un ficheros txt, entre en el sitio que me indicaste y no encuentro el componente TDataToAscii a lo mejor me puedes facilitar una ruta mas especifica.

mil gracias de todas formas.

delphi.com.ar
01-03-2007, 17:16:44
http://www.delphi.com.ar/vcl/expsuitsrc.zip

Saludos!

seoane
01-03-2007, 17:25:17
Casi me da verguenza sugerir algo tan simple :o , pero puede que te sirva:


procedure Guardar(Archivo: String; Grid: TStringGrid);
var
i: integer;
begin
with TStringList.Create do
try
for i:= 0 to Grid.RowCount - 1 do
Add(Grid.Rows[i].CommaText);
SaveToFile(Archivo);
finally
Free;
end;
end;

// Por ejemplo
Guardar('C:\Archivo.txt',StringGrid1);

roman
01-03-2007, 18:08:33
Sencillo y efectivo claro que lo es. Pero sólo funcionará para el StringGrid y no para el DBGrid. La componente de Federico sería más bien para este caso, además de que sirve también para un formato de columnas de ancho fijo.

// Saludos

jhcaboverde
01-03-2007, 23:51:13
seras bueno en delphi para para que se te reconozca no te averguences de ayudar a los demas que estoy seguro que cuando lo necesites seran tu ayuda mas proxima, en fin tu ejemplo me ayudo espero que este texto te ayude a ti.

Juan

Casi me da verguenza sugerir algo tan simple :o , pero puede que te sirva:


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
procedure Guardar(Archivo: String; Grid: TStringGrid);
var
i: integer;
begin
with TStringList.Create do
try
for i:= 0 to Grid.RowCount - 1 do
Add(Grid.Rows[i].CommaText);
SaveToFile(Archivo);
finally
Free;
end;
end;

// Por ejemplo
Guardar('C:\Archivo.txt',StringGrid1);