PDA

Ver la Versión Completa : Leer un *.txt y Luego Imprimirlo


newdelphi7
12-12-2006, 04:55:54
Buenas, probablemente la pregunta este fuera de lugar porque en realidad mi problema no es realizar la impresion, sino como leer un archivo txt....

Estoy haciendo una aplicacion en PHP y no encontre forma de pasarle los comandos de ESC para hacer imprimir una impresora Star Sp200 y/o Epson Tm-300, por lo que al final termine guardando los datos a imprimir en un archivo "imprimir.TXT"

La idea es realizar una aplicacion en Delphi que lea los datos en el fichero imprimir.txt y lo mande directamente a la impresora con este comando:
var
iImpresora : TextFile;
begin
Assignfile(iImpresora,'Lpt1');
Rewrite(iImpresora);
Writeln(iImpresora,' AQUI IRIA LO QUE VA A LEER EN CADA LINEA y SERA LO QUE SALDRA EN LA IMPRESORA');
CloseFile(iImpresora);
end;

Aqui mi pregunta: el fichero consta de 15 a 25 Lineas promedio me gustaria saber como puedo yo leer el fichero linea por linea e irlo guardando en una variable hasta que sea fin de archivo y no se imprima mas..... Nota: cada linea tiene como 30 caracteres mas o menos...

Gracias por su ayuda y su tiempo, de antemano.....

ElKurgan
12-12-2006, 08:22:18
Una forma sencilla de hacerlo sería como sigue:


var
iImpresora : TextFile;
vLista: TStringList;
begin
Assignfile(iImpresora,'Lpt1');
Rewrite(iImpresora);
vLista := TStringList.Create;
try
vLista.Strings.LoadFromFile('ElFicheroQueQuieroLeer');
Writeln(iImpresora, vLista.Strings.Text );
finally
CloseFile(iImpresora);
vLista.Free;
end;
end;


Un saludo

ElKurgan
12-12-2006, 08:26:35
Bueno, la prisa es mala consejera... Bastaba con poner esto:


...
try
vLista.LoadFromFile('ElFicheroQueQuieroLeer');
Writeln(iImpresora, vLista.Text );
finally
...


Mis disculpas...

newdelphi7
12-12-2006, 14:50:06
Gracias, pero no solo la prisa es mala consejera, sino tambien la falta de conocimiento en la materia, anoche me sente y pude hacer el sistemita... mira como lo hice.

Var
iImpresora: TextFile;
Fichero: TextFile;
Linea: String;
Contador: integer;
begin
Contador :=0;
AssignFile(Fichero,'C:\Tarjeta\tarjeta.txt');
Assignfile(iImpresora,'Lpt1');
Reset(Fichero);
While Eof(Fichero)=False Do
Begin
Readln(Fichero,Linea);
Rewrite(iImpresora);
Writeln(iImpresora, Linea);
Inc(Contador);
end;
Closefile(Fichero);
end;

Gracias de todas formas probare el metodo que me diste, a ver que tal y gracias de nuevo......