PDA

Ver la Versión Completa : archivo de texto


jovehe
30-04-2004, 18:24:42
que tal amigos del foro
escribo para ver si me pueden ayudar con una impresion en un archivo de texto; es decir yo tengo una base de datos que lleno y esos datos necesito exportarlos a un archivo .txt solo que no se como hacerlo ya que soy todo un novato en esto de la programacion.
si alguien me pudiera ayudar se lo agradeceria mucho.
att.
jovehe.

delphi.com.ar
30-04-2004, 18:30:53
Puedes utilizar el programa asociado para imprimir este texto, con el siguiente código: uses
ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'print', 'c:\texto.txt', nil, nil, SW_SHOW);
end;


O puedes ir a algo mas antiguo:
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec('c:\texto.txt > LPT1', SW_SHOW);
end;

O bien puedes abrir el archivo, y cargarlo en un reporte.

Saludos!

jovehe
30-04-2004, 18:43:37
oye muchas gracias por la respuesta tan rapida pero no he podido mprimir fijate que el texto que quiero sacar es desde una b.d. y no se como lo voy a ligar para que el archivo de texto jale esos datos aparte el archivo tiene que existir forsozamente ?
espero me puedas ayudar muchas gracias
att
jovehe
saludos¡¡

delphi.com.ar
30-04-2004, 18:46:38
Si quieres imprimirlo no necesariamete tienes que exportar este "archivo"... puedes hacer un reporte con QuickReports, poner un query e imprimir los datos de los campos.. Te recomiendo ver los ejemplos que trae Delphi al respecto.
Ahora si quieres exportarlo... ¿Un campo solo o varios registros+campos?

Saludos!

jovehe
30-04-2004, 19:02:45
es que quiero exportarlo a un texto y son varios registros+campos por poner un ejemplo haz de cuenta que tengo la tabla con 4 campos y tienen varios registros pues quiero poner esos registros en un texto haz de cuenta que el primer registro con todos sus campos en una linea y despues el siguiente registro con todos sus campos en la siguiente linea y asi sucesivamente.

oye muchas gracias por las respuestas tan prontas te lo agradezco en verdad

delphi.com.ar
30-04-2004, 19:07:11
Ok.. puedes hacerlo mediante las funciones / clases de manejos de archivos (FileOpen, AssignFile, CreateFile o TFileStream), o puedes bajarte de mi página los componentes llamados ExportSuite, precisamente uno llamado TDataToAscii tiene esta funcionalidad, o puedes buscar algunos open source en Torry.Net

Saludos!

jovehe
30-04-2004, 19:36:07
que crees ya instale los componentes pero ahora no me deja compilar la aplicacion ya le agregue a mi proyecto los .dcu y ahora me pide un archivo .pas y no se que onda no sabes donde puedo encontrar informacion acerca de como utilizar estos componentes o me puedes una vez mas orientar y ayudarme espero no te moleste mucho.
gracias

delphi.com.ar
30-04-2004, 20:38:54
Los DCU son PAS compilados, con tener los DCU en el Search Path del proyecto, compilará. El Search Path lo puedes editar desde el menú Project \ Options \ Directories / Conditionals

Saludos!

jachguate
01-05-2004, 00:48:28
Hola... pero realmente te interesa generar un texto de pormedio?? o lo único que queres conseguir es el reporte...

Si es asi, podes valerte del Quick Report, o cualquier otro generador de informes....

Hasta luego.

;)

jovehe
07-05-2004, 00:52:24
no en verdad me interesa mucho poder generar un texto para que esos datos los pueda importar a otro sistema; por eso es que tengo dificultades porque quiero extraer los datos de una tabla a un texto con un registro por renglon y todos los campos juntos sin ningun espacio.

espero haber podido explicarte bien mi cuestion y ojala me puedas ayudar muchas gracias por tu atencion

jachguate
07-05-2004, 00:59:01
bueno, podes valerte de un TStringList (o de un Memo) para generar las líneas de texto.

Algo como:


memo1.Lines.Add(
Tabla.FieldByName('campo1').AsString + ',' +
Tabla.FieldByName('campo2').AsString);


iteras por los diferentes registros de la tabla y por último llamas al método SaveToFile de Memo1.Lines (o el TStrings usado).

Hasta luego.

;)

jachguate
07-05-2004, 01:00:30
o puedes bajarte de mi página los componentes llamados ExportSuite, precisamente uno llamado TDataToAscii tiene esta funcionalidad

No habia visto este mensaje de delphi.com.ar... que mas queres????

jovehe
12-05-2004, 16:47:00
hola que tal
la verdad no se si lo este pero genere el texto con el report builder solo que tengo un pequeño problemilla al momento que mando el texto me manda un separador ',' para cada campo pero el texto que requiero no debe llevar separador por lo que se lo quito pero entonces no me manda un registro por renglon sino que me manda todos los registros en un solo renglon no sabes como le puedo hacer? tambien intente con el metodo del memo el problema es que me copia solo el primer registro como que tego que recorrer toda la tabla pero no se como espero me puedas ayudar y que no te quite mucho el tiempo nos vemos hasta luego.
y gracias por la respuesta tan rapida

jovehe
13-05-2004, 01:17:25
que tal delphi.com.ar

oye disculpa l amolestia tengo unos pequeños problemas con mi archivo de texto ya utilize los componentes que me recomendaste y ya pude hacer mitexto solo que ahora tengo un problema fijate que uno de los campos (importe)que mando al archivo de texto es de 16 posiciones pero al momento de mandar al texto si el importe es menor de 16 caracteres pues simplemente lo pone asi y yo necesito que aunque no ocupe toda la longitud quede espacio en blanco.
supongamos que el importe es de 10 posiciones pues necesito que que en el texto aparezca las otras seis posiciones como espacios en blanco y luego el importe de 10 mas asi serian 16 pero no se como hacerlo.
espero no haberte enredado y ojala me pudieras ayudar y disculpa i te causo molestias.
gracias hasta pronto.

delphi.com.ar
13-05-2004, 02:02:05
que tal delphi.com.ar

oye disculpa l amolestia tengo unos pequeños problemas con mi archivo de texto ya utilize los componentes que me recomendaste y ya pude hacer mitexto solo que ahora tengo un problema fijate que uno de los campos (importe)que mando al archivo de texto es de 16 posiciones pero al momento de mandar al texto si el importe es menor de 16 caracteres pues simplemente lo pone asi y yo necesito que aunque no ocupe toda la longitud quede espacio en blanco.
supongamos que el importe es de 10 posiciones pues necesito que que en el texto aparezca las otras seis posiciones como espacios en blanco y luego el importe de 10 mas asi serian 16 pero no se como hacerlo.
espero no haberte enredado y ojala me pudieras ayudar y disculpa i te causo molestias.
gracias hasta pronto.
Si defines de ancho fijo el campo, y el dato del campo es menor, el campo "crecerá" hasta ocupar el ancho predeterminado, si el campo es mayor será cortado según la alineación definida. (Todo esto lo ves en las propiedades de los campos)

Saludos!

EduardoGT
21-07-2004, 23:30:14
Federico

Ya descargue el componente para exportar a txt. Pero.... como se usa? Soy muy novato en esto.

De antemano gracias por tu ayuda.

jovehe
13-10-2004, 22:44:39
que tal
mira estos componentes son mu faciles de utilizar
basta con que le cuelges en la propiedad dataset un datasource que este ligado a la tabla que quieres exportar a txt.
y podrias madarlo a un archivo con este codigo espero te sirva.
solo necesitas poner tambien un savedialog de la paleta dialogs y declarar una variable en la seccion private asi mas o menos

private
Archivo:String;
{ Private declarations }

procedure TForm1.BtnExporttxt(Sender: TObject);
begin
Tabla1.Open;
if SaveDialog1.Execute then
begin
Archivo:=SaveDialog1.FileName;
DataToAscii1.SaveToFile(Archivo);
end;
end;
Saludos¡