Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   archivo de texto (https://www.clubdelphi.com/foros/showthread.php?t=9742)

jovehe 30-04-2004 18:24:42

archivo de texto
 
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:
Código Delphi [-]
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:
Código Delphi [-]
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

texto
 
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

texto
 
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

texto
 
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

que tal
 
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:

Código Delphi [-]
  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

Cita:

Empezado por delphi.com.ar
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

que tal jachguate
 
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

pregunta
 
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

Cita:

Empezado por jovehe
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¡


La franja horaria es GMT +2. Ahora son las 14:28:58.

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