笨
笨波
Unregistered / Unconfirmed
GUEST, unregistred user!
听说过用MSCOMM发送数据的过程中,数据会丢失,可下面这个问题是出在了循环语句上了呢,
还是MSCOMM发过程中丢失的呢,请朋友们帮我看看。
我发送的数据是这样的:FEFE3344F32C6522;已经是十六进制的了,为了写到COM1上时也让
它认为我发的是十六进制的数而不是字符,我用了循环语句:如下
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s,datastr:string;
begin
s:=memo1.text;
for i:=0 to (length(s) div 2)-1do
begin
datastr:=datastr+chr(strtoint('$'+ copy(s,i*2+1,2)));
end;
可发现发送后,其它的数据都对,但F3后面的2C不见了,发送的数据变成了FEFE3344(3F)6522
我试了试好象是这样的,如果发送:F3C2,发送过程就是好的,但如果是F32C,就变成了:3F;
即:发送此种型式是好的:F3F4F5C2C4C6,但发送:F34F5FC26C时就不对,会改3F;
即第一个和第2*I+1个字符必须对应,要么都是数字,要么都是字符,不然就出错,改成了3F。
是不在循环的时候就出错了呢。
还是MSCOMM发过程中丢失的呢,请朋友们帮我看看。
我发送的数据是这样的:FEFE3344F32C6522;已经是十六进制的了,为了写到COM1上时也让
它认为我发的是十六进制的数而不是字符,我用了循环语句:如下
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s,datastr:string;
begin
s:=memo1.text;
for i:=0 to (length(s) div 2)-1do
begin
datastr:=datastr+chr(strtoint('$'+ copy(s,i*2+1,2)));
end;
可发现发送后,其它的数据都对,但F3后面的2C不见了,发送的数据变成了FEFE3344(3F)6522
我试了试好象是这样的,如果发送:F3C2,发送过程就是好的,但如果是F32C,就变成了:3F;
即:发送此种型式是好的:F3F4F5C2C4C6,但发送:F34F5FC26C时就不对,会改3F;
即第一个和第2*I+1个字符必须对应,要么都是数字,要么都是字符,不然就出错,改成了3F。
是不在循环的时候就出错了呢。