Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Modulo-10 Prüfsumme eines Strings berechnen

  Alt 4. Mär 2019, 16:28
Delphi-Quellcode:
function Modulo10FromString(s : String) : Integer;
var
  i : Integer;
begin
  Result := 0;
  for i := 1 to Length(s) do begin
    case i mod 2 of
      0 : Result := Result + (Ord(s[i]) * 3);
      1 : Result := Result + Ord(s[i]);
    else
      // Upps, das geht doch garnicht ;-)
    end;
  end;
  Result := Result Mod 10;
end;
Das hätte aber eine 1/3-Gewichtung, die ich in der Formel nicht sehen kann. Daher schaut meine Version aktuell so aus:
Delphi-Quellcode:
function Checksum(const AStr: string): Byte;
var
  A: AnsiString;
  C: AnsiChar;
  I: Integer;
begin
  A:= AnsiString(AStr);
  I := 0;
  for C in A do begin
    I := I + Ord(C);
  end;
  Result := (I mod 10);
end;
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat