心
心飞雪
Unregistered / Unconfirmed
GUEST, unregistred user!
请各位有做过pos系统的帮我看看,以下代码是什么问题:
在rewrite(f)为何偶尔会出现:I/O error 105的错误呢?
有时出错但有时又不会出错。请帮忙提提意见,谢谢!
procedure openmoneybox();
// 开钱箱 Epson210D+D7+Win2k测试通过
var
F:TEXTFILE;
pdStr,cd:string;
pport,prin:string;
// 打印机端口,开钱箱端口,打印机类型
begin
cd:=trim(sini.ReadString('Pos','use_pos_pd_led_omb',''));
// 使用客显开钱箱
if cd='1' then
// diy 川田客显开钱箱,使用客显开钱箱
begin
pdstr:=chr(2)+chr(77);
// 控制顾客显示屏开钱箱指令
try
com_send(Pchar(PDStr),Length(PDStr));
except
on e: Exceptiondo
begin
abort;
end;
end;
exit;
end;
try
pdStr:=Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
pport:=trim(sini.ReadString('Pos','posprinterport',''));
// 打印机端口
prin:=sini.ReadString('Pos','posprintertype','');
// 打印机类型
if prin='STAR SP2000兼容针打' then
// STAR SP2000兼容针打
pdstr:=CHR(27)+chr(112)+CHR(07);
// Star SP312 (Receipt)->Star SP2000系列的打印机
try
assignFile(F,pport);
// assignfile(f,pport);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
Rewrite(F);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
Write(F,pdStr);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
CloseFile(F);
except
on e: Exceptiondo
begin
abort;
end;
end;
Except
begin
application.messagebox('对不起,钱箱打开失败,请检查【打印机类型或设置】;'+#13+#13+
'提示:请检查【打印机是否打开或没纸或打印机连接线,'+#13+#13+
' 或是否采用顾客显示屏等其它方式开钱箱】!',
pchar(syscaption),mb_ok+mb_iconerror);
end;
end;
end;
在rewrite(f)为何偶尔会出现:I/O error 105的错误呢?
有时出错但有时又不会出错。请帮忙提提意见,谢谢!
procedure openmoneybox();
// 开钱箱 Epson210D+D7+Win2k测试通过
var
F:TEXTFILE;
pdStr,cd:string;
pport,prin:string;
// 打印机端口,开钱箱端口,打印机类型
begin
cd:=trim(sini.ReadString('Pos','use_pos_pd_led_omb',''));
// 使用客显开钱箱
if cd='1' then
// diy 川田客显开钱箱,使用客显开钱箱
begin
pdstr:=chr(2)+chr(77);
// 控制顾客显示屏开钱箱指令
try
com_send(Pchar(PDStr),Length(PDStr));
except
on e: Exceptiondo
begin
abort;
end;
end;
exit;
end;
try
pdStr:=Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
pport:=trim(sini.ReadString('Pos','posprinterport',''));
// 打印机端口
prin:=sini.ReadString('Pos','posprintertype','');
// 打印机类型
if prin='STAR SP2000兼容针打' then
// STAR SP2000兼容针打
pdstr:=CHR(27)+chr(112)+CHR(07);
// Star SP312 (Receipt)->Star SP2000系列的打印机
try
assignFile(F,pport);
// assignfile(f,pport);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
Rewrite(F);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
Write(F,pdStr);
except
on e: Exceptiondo
begin
abort;
end;
end;
try
CloseFile(F);
except
on e: Exceptiondo
begin
abort;
end;
end;
Except
begin
application.messagebox('对不起,钱箱打开失败,请检查【打印机类型或设置】;'+#13+#13+
'提示:请检查【打印机是否打开或没纸或打印机连接线,'+#13+#13+
' 或是否采用顾客显示屏等其它方式开钱箱】!',
pchar(syscaption),mb_ok+mb_iconerror);
end;
end;
end;