zoukankan      html  css  js  c++  java
  • 【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;
    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    【POJ 2778】DNA Sequence
    【POJ 2923】Relocation
    codeforces 475D
    hdu4742
    hdu4741
    hdu5016
    poj3929
    Codeforces Round #267 (Div. 2)
    codeforces 455E
    hdu4073 Lights
  • 原文地址:https://www.cnblogs.com/dabiao/p/2156217.html
Copyright © 2011-2022 走看看