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