Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Mathematik

Berechnung IBAN Prüfziffer

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.RedakteurVolta 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
  • Das Code-Beispiel wurde am 11.01.2020 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 11.01.2020 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen