All pastes #795031 Raw Edit

Untitled

public text v1 · immutable
#795031 ·published 2007-11-23 16:57 UTC
rendered paste body


function SomaHex(Valor1, Valor2: String): String;

begin

  Result := Format('%x', [StrToInt(HexDisplayPrefix + Valor1) + StrToInt(HexDisplayPrefix + Valor2)]);

end;



function SubtrairHex(Valor1, Valor2: String): String;

begin

  Result := Format('%x', [StrToInt(HexDisplayPrefix + Valor1) - StrToInt(HexDisplayPrefix + Valor2)]);

end;

procedure CheckSum(linha: String);

var

  i: Integer;

begin

  Result := '00';

  i := 1;

  while i < length(linha) do

  begin

    Result := SomaHex(Result, linha[i]+linha[i+1]);

    Inc(i, 2);

  end;

  if Length(Result) > 2 then

    Result := SubtrairHex('100', Copy(Result, 2, 2))

  else

    Result := SubtrairHex('100', Result);

end;


ShowMessage(CheckSum('6a696d6d796a616d65737061747269636b76616e686f6c6c6768616e736b756c6c'));