PDA

Ver la Versión Completa : I/O Error 231


jsanchez
23-05-2003, 20:40:25
Hola foro,

Tengo el siguiente problema. Estoy intentando imprimir el resultado de una consulta en una impresora Epson 200, el problema es que cuando la consulta da como resulta más de un cierto número de registros, la impresora se vuelve loca.
Para intentar solucionar eso, lo que pensé fue abrir y cerrar el archivo asignado al puerto, cada vez que se ejecutara una vez el ciclo, como se ve en el código.
Ahora el problema es que cuando ha imprimido 9 líneas, o sea se ha ejecutado el ciclo 9 veces me da un error de Entrada/Salida, el 231, en la instrucción ReWrite(F); dentro del ciclo.

Alguien me podría decir qué estoy haciendo mal?

AssignFile(F,'Com1');
Rewrite(F);
WriteLn(F,StrToOEM('Reporte '+CBReporte.Text));
WriteLn(F,StrToOEM('Fecha: '+DateToStr(Date)));
WriteLn(F,StrToOEM('Hora: '+TimeToStr(Time)));
WriteLn(F,StrToOEM('________________________________________')); WriteLn(F,StrToOEM(''));

Writeln(F,Espacios(5,'Cod',1)+ Espacios(25,'Nombre Producto',1)+Espacios(10,'Cantidad',1));
DMMusmanni.QHorno.First;
CloseFile(F);

while DMModuloDatos.QStock.Eof <> true do
begin
AssignFile(F,'Com1');
Rewrite(F);

Writeln(F,Espacios(5,DBGStock.Fields[0].ASString,1)+Espacios(25,DBGStock.Fields[1].AsString,1)+Espacios(10,DBGStock.Fields[3].ASString,1));

DMModuloDatos.QStock.Next;
CloseFile(F);

end;

AssignFile(F,'Com1');
Rewrite(F);
WriteLn(F,StrToOEM('________________________________________'));
CloseFile(F);


Muchas Gracias por todo.

Ya estoy desesperado.