Code-Beispiel
Berechnung IBAN Prüfziffer
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Volta | 11.01.2020 |
Bei der Berechnung der Prüfziffer muss eine sehr große Zahl durch 97 geteilt werden.
Mit einem einfachen Trick ist das auch mit 32bit Variablen möglich.
'Berechnung Prüfziffer der IBAN (nur Deutschland)
'Bankleitzahl 85050300
'Kontonummer 4000428549 (10 Stellen)
'BBAN 700901001234567890
'alphanumerische Länderkennung DE
'numerische Länderkennung 1314 (D = 13, E = 14)
'numerische Länderkennung ergänzt um 00 131400
'Prüfsumme 850503004000428549131400
'Prüfsumme Modulo 97 =73
'Prüfziffer 25 (98 - 73), ergänzen um führende Null
'Länderkennung + Prüfziffer + Bankleitzahl + Kontonummer = IBAN DE25850503004000428549
Dim BLZ As ULong = 85050300
Dim KtNr As ULong = 4000428549
Dim BBan As String
Dim PrSu As ULongInt
'BBAN = Bankleitzahl + Kontonummer + Länderkennung
BBan = Str(BLZ) + Str(KtNr) + "131400"
Print "BBan: ";BBan
'Die Division bei der Berechnung des Restwertes kann in mehreren
'Teilschritten mit jeweils neun Ziffern erfolgen.
PrSu = ValULng(Left(BBan,9)): ?PrSu
'Die ersten neun Ziffern werden durch 97 geteilt. Der so erhaltene ein-
'oder zweistellige Restwert wird für die weiteren Teilschritte weiterverwendet.
PrSu = ValULng(Str(PrSu Mod 97) + Mid(BBan,10,7)): ?PrSu
PrSu = ValULng(Str(PrSu Mod 97) + Mid(BBan,17,7)): ?PrSu
PrSu = ValULng(Str(PrSu Mod 97) + Mid(BBan,24,7)): ?PrSu
'Am Schluss wird der letzte Restwert von der Zahl 98 subtrahiert.
'Das Resultat ist die zweistellige Prüfziffer (evtl. mit einer vorgestellten Null).
PrSu = 98 - (PrSu Mod 97)
Print "Pruefziffer: ";PrSu
'IBAN = Länderkennung + Prüfziffer + Bankleitzahl + Kontonummer
Print "IBAN: " + "DE" + Str(PrSu) + Str(BLZ) + Str(KtNr)
Sleep
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|