BZÜ-Prüfziffer in Pascal berechnen

Die folgende Funktion in Pascal wurde freundlicherweise von Matthias Hanft zur Verfügung gestellt.
Ohne Gewähr und Benutzung auf eigene Verantwortung.

function bazconv(zeile:string):string;
    (* eingabe: string mit maximal 12 ziffern *)
    (* ausgabe: 13stelliger string (letzte ziffer=prüfziffer) *)
    const m=10;
    var temp:string;
        j,p,s:byte;
    begin (* bazconv *)
      temp:=copy(zeile,1,12); (* ggf. auf max. 12 zeichen abschneiden *)
      while length(temp)<12 do (* ggf. auf genau 12 zeichen auffüllen *)
        insert('0',temp,1);
      p:=m;
      for j:=1 to 12 do begin
        s:=(p mod succ(m))+(byte(temp[j]) and $0F);
        s:=s mod m;
        if s=0 then
          s:=m;
        p:=s shl 1
      end; (* for j:=1 to 12 *)
      p:=p mod succ(m);
      temp:=temp+char($30 or ((11-p) mod 10));
      bazconv:=temp
    end; (* bazconv *)

Zurück zum BZÜ-Zahlschein oder zur Prüfziffern-Erklärung.


Zurück zum Zahlungsverkehr Inland, zur Hauptübersicht oder zur Startseite

Es gelten die Disclaimer

(c) 2000-2002 Christian Bartsch, Matthias Hanft