【Hex 格式文件操作】二、判断是否为有效的intel_hex文件,并进行数据校验

我的程序判断依据:
1.第一个字符是否为" : " 。
2.从第二个字符到最后一个字符,是否为0..F之间的数字。
3.计算校验和,查看计算出的校验和是否和实际的校验和一致。

<欢迎给出宝贵意见>

Delphi 代码:
____________________________________________________________________________________________

function CheckLinesum(line:AnsiString): Integer;
var
len:Integer;
checksum:Integer;
i:Integer;
temp:Integer;
begin

if PAnsiChar(line)[0] <> ':' then {1. 检查第一个字符是否为冒号}
begin
Result :
= 0;
exit;
end;

checksum :
= 0; {2.计算CheckSum值,同时,检查字符是否为无效字符}
len :
= Length(line);
for i := 1 to ((len-3) div 2) do
begin
if TryStrToInt('$' + copy(line,i*2,2),temp) then
begin
checksum :
= checksum + temp;
end
else
begin
Result :
= 0;
exit;
end;

end;

checksum :
= $01 + (not (checksum mod $100));

if rightstr(IntToHex(checksum,2),2) = copy(Line,len -1 ,2) then {3.checksum校验}
Result :
= 1
else
begin
Result :
= 0;
end;
end;
posted @ 2011-08-28 15:36  Delcpp  阅读(1570)  评论(1编辑  收藏  举报