PDA

Ver la Versión Completa : problema con secuencias de escape


janlo
06-10-2008, 17:36:17
Hola,
tengo un programa de punto de venta y necesito saber como poder introducir las secuencias de escape para la apertura de cajon sin tener que ponerlas directamente en el codigo.Es decir, que las quiero guardar en la base de datos como parte de la configuración y no tener que ponerlas en el codigo.
Ahora mismo tengo:

AssignFile(nPrn,'LPT1');
Rewrite(nPrn);
WriteLn(nPrn,#27+#112+#0+#10+#100);
CloseFile(nPrn);

Pues bien, esos valores los tengo en una tabla pero cuando los leo me los trata como string y no como asscii. ¿Cómo puedo hacer para tratarlos como asscii directamente?.

Gracias de antemano.

seoane
06-10-2008, 21:50:21
Puedes usar algo como esto:
http://www.clubdelphi.com/foros/showpost.php?p=187000&postcount=6

O como esto:
http://www.clubdelphi.com/foros/showthread.php?t=54626

coso
06-10-2008, 21:56:39
bueno...una string son una serie de caracteres ascii ...creo que el problema te viene de la manera que guarda la base de dados los strings, pues es probable que los codigos de control (#27,#0,#10) los ignore. Yo lo que he hecho para esto es guardar los numeros en un TStringList, uno en cada linea, y luego ir enviando segun necesite. Te lo pongo de memoria



procedure Salvar_codigo_apertura;
var
sl : TStringList;
begin
sl := TStringList.Create;
sl.Add('27');
sl.Add('112');
sl.Add('0');
...
sl.SaveToFile('c:\codobert.txt');
sl.Free;
end;


procedure Enviar_codigo_apertura;
var
sl : TStringList;
i : integer;
begin
sl := TStringList.Create;
sl.LoadFromFile('c:\codobert.txt');
AssignFile(nPrn,'LPT1');
Reset(nPrn);

for i := 0 to sl.Count - 1 do
Write(nPrn,char(strtoint(sl[i]));

CloseFile(nPrn);
sl.Free;
end;