• 【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;
    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/dabiao/p/2156217.html
Copyright © 2020-2023  润新知