FStrBuffer: string;
FBuffer: array of byte;
FLen: integer;
//分配内存
SetLength(Fbuffer,FLen);
for i := 1 to FLen do
begin
//命令字符串转换为16进制
mStr := '$' + Copy(FStrBuffer,i*2-1,2);
try
//动态数组从零开始计算
FBuffer[i-1] := StrToInt(mStr);
except
Exit;
end;
end;
FBuffer: array of byte;
FLen: integer;
//分配内存
SetLength(Fbuffer,FLen);
for i := 1 to FLen do
begin
//命令字符串转换为16进制
mStr := '$' + Copy(FStrBuffer,i*2-1,2);
try
//动态数组从零开始计算
FBuffer[i-1] := StrToInt(mStr);
except
Exit;
end;
end;
解决方案 »
- 个人发展 求高手指点
- 宣传一下一个活在我们心中的人!
- 哪位高人给我讲讲SQL的格式
- Delphi 5 中ActionList共用的問題
- 会编网络浏览器的高手请进
- 哪有InstallShield Express for d6的下载
- 关于DBGrid的拖放问题,找了好多例子,都没能实现要求,高手请进
- 类和结构有什么异同?
- 菜单问题!小菜啦!
- 如何清除冰河木馬﹖
- excelapplication1.ActiveWorkbook.SaveAs(savedialog2.FileName); 为什么总是提示参数不足?谢谢大侠!
- CSDN是怎么搞的,得了290分,就只加了10分,我能不郁闷吗?大家出来评评!
FBuffer: array of byte;
FLen: integer;
//-------------------------------------
FLen:=Length(FStrBuffer); //取原字串长度
if FLen mod 2 >0 then
begin //如果不能被2整除
FStrBuffer:='0'+FStrBuffer;//在前面添零补足
end;
FLen:=Length(FStrBuffer) div 2;//一次取两个字节长度
//将字串长度除以2得
//转换次数
//-------------------------------------
//分配内存
SetLength(Fbuffer,FLen);
for i := 1 to FLen do
begin
//命令字符串转换为16进制
mStr := '$' + Copy(FStrBuffer,i*2-1,2);
try
//动态数组从零开始计算
FBuffer[i-1] := StrToInt(mStr);
except
Exit;
end;
end;
flen已经定死为5,关键是为何$不是有效的整型
例$FCA0这样一个十六进制字串本身只有两字节,一次取一字节,那么取到第三次是不是只有一个空串?那么此前在空串前加一个'$'是不是就会有下面的错误?
----------------------------------------------------------------
原贴内容:
编译时可以通过,就是运行时出现 $ is not a valid integer value
flen已经定死为5,就是为何$不是有效的整型
//-------------------------------------
//分配内存
SetLength(Fbuffer,FLen);
for i := 1 to FLen do
begin
//命令字符串转换为16进制
mStr := '$' + Copy(FStrBuffer,i*2-1,2);
try
//动态数组从零开始计算
FBuffer[i-1] := StrToInt(mStr);
except
Exit;
end;
end;