请教各位,开发环境windows 2000+delphi6,利用mscomm控件,接收读卡器的数据,最终要获得卡号。我写了一些代码,但是edit控件显示的是乱码“??糋”,如何显示出来我们可以看懂的数据呢,无论是二进制还是十进制,或者是十六进制,procedure TForm1.FormCreate(Sender: TObject);
begin
self.MSComm1.CommPort:=1;
self.MSComm1.PortOpen:=true;
self.MSComm1.Settings:='9600,n,8,1';
self.MSComm1.RThreshold:=7;
self.MSComm1.InputMode:=comInputModeBinary;
self.MSComm1.InBufferCount:=0;
self.MSComm1.InputLen:=0;
end;procedure TForm1.MSComm1Comm(Sender: TObject);
var
str:olevariant;
begin
str:=self.MSComm1.Input;
self.Edit1.Text:=str;
end;
begin
self.MSComm1.CommPort:=1;
self.MSComm1.PortOpen:=true;
self.MSComm1.Settings:='9600,n,8,1';
self.MSComm1.RThreshold:=7;
self.MSComm1.InputMode:=comInputModeBinary;
self.MSComm1.InBufferCount:=0;
self.MSComm1.InputLen:=0;
end;procedure TForm1.MSComm1Comm(Sender: TObject);
var
str:olevariant;
begin
str:=self.MSComm1.Input;
self.Edit1.Text:=str;
end;
解决方案 »
- 开发DB2数据库程序,编译完的EXE要装DB2的客户端才能用
- 问题个低级的问题,进度条应怎么使用?
- 汉字写入.DBF时碰到的问题
- 请问如何用ADO连接EXCEL?
- 关于画箭头的问题
- 问一个union的select小问题?
- Report builder 7enterprise如何象fastreport中的add page一样能够设计几页不同纸张大小的报表
- 请参与 【征求多用户操作的完美解决办法!分不够可以在开帖子!(300分)】一贴的同志近来接分!!2号贴
- 求: delphi程序设计规范
- 练习getcomputername、setcomputername后多了一个计算机名怎么办?
- 表的字段太多,如何实现打印自动折行,难啊
- 一个指针的问题,初学指针,请高人指教
AAH FFH D0 D1 D2 D3 D4 校验和数据结构(共8字节)的说明:
地 址 定 义
0-1 命令码(AA FF)
2-6 40位卡号
7 校验和(地址0-6位共7字节“XOR”异或值 )
举例:某40位卡号为01021DF6FA(HEX),对应发送格式为:
AAH FFH 01 02 1DH F6H FAH 47H
其卡号为5个字节:01H 02H 1DH F6H FAH
因为卡号现在还未全部分配,一般前1个字节作为出厂编码,后4个字节为现在实际使用卡号,编程时可将这4个字节存入一长整数中,显示出来就是10进制卡号了。
举例中的十进制的卡号为:0035518202
你可先设一下COM口的接收长度。