Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IBAN berechnen (https://www.delphipraxis.net/155975-iban-berechnen.html)

khh 15. Nov 2010 16:05

IBAN berechnen
 
hallo zusammen,
im Netz gibts ja diverse Links zur Iban-Bberechnung.

Gibt es sowas auch irgendow zur Einbindung in eine Delphi/Lazarus-Routine OHNE Netzverbindung?

Danke Gruss KHH

Neutral General 15. Nov 2010 16:14

AW: IBAN berechnen
 
Hallo,

Kannst dir doch eigentlich selbst was bauen oder? Wikipedia bietet da denke ich genug Informationen.

khh 15. Nov 2010 16:18

AW: IBAN berechnen
 
Zitat:

Zitat von Neutral General (Beitrag 1061640)
Hallo,

Kannst dir doch eigentlich selbst was bauen oder? Wikipedia bietet da denke ich genug Informationen.

ja, das schon, dachte halt vieleicht gibts das schon, hätte etwas Arbeit erspart :-)

Bernhard Geyer 15. Nov 2010 16:25

AW: IBAN berechnen
 
Zitat:

Zitat von khh (Beitrag 1061642)
ja, das schon, dachte halt vieleicht gibts das schon, hätte etwas Arbeit erspart :-)

Du kannst uns dann ja dein Ergebnis zur Verfügung stellen damit andere die es nach dir benötigen es nicht nochmal machen müssen.

khh 15. Nov 2010 16:34

AW: IBAN berechnen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1061643)
Zitat:

Zitat von khh (Beitrag 1061642)
ja, das schon, dachte halt vieleicht gibts das schon, hätte etwas Arbeit erspart :-)

Du kannst uns dann ja dein Ergebnis zur Verfügung stellen damit andere die es nach dir benötigen es nicht nochmal machen müssen.

jau, das kann ich machen
Gruss KH

shmia 15. Nov 2010 17:31

AW: IBAN berechnen
 
Hier hab ich mal die Kernfunktion "Modulo 97" entworfen.
Delphi-Quellcode:
// Berechne Modulo 97 Prüfziffer
// wird für IBAN benötigt
function Modulo97PruefZiffer(const X:string):Integer;
const
   m36:string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
   i, p : Integer;
begin
   Result := 0;

   for i := 1 to Length(X) do
   begin
      p := Pos(X[i], m36) ;
      if p = 0 then
         raise Exception.CreateFmt('Modulo97PruefZiffer(%s): invalid data', [X]);
      Dec(p);
      if p > 9 then
      begin
         Result := Result * 10 + (p div 10);
         p := p mod 10;
      end;
      Result := Result * 10 + p;
      Result := Result mod 97;
   end;
end;
Und hier noch die Test-Cases.
Die Funktion ist also getestet und dürfte korrekt sein.
Delphi-Quellcode:
Assert(Modulo97PruefZiffer('50000')=45);
Assert(Modulo97PruefZiffer('210501700012345678131468')=1);
Assert(Modulo97PruefZiffer('210501700012345678DE68')=1);

YogiBär 1. Aug 2013 17:51

AW: IBAN berechnen
 
Liste der Anhänge anzeigen (Anzahl: 2)
In der Anlage sind einige Programmbeispiele zur
Berechnung der IBAN und zur Ermittlung des BIC
aud Datenbank der Deutschen Bundesbank.
Datei BLZ97.zip format EXCEL 97 - 2003.

Erläuterungen zu den Funktionen und Programmen
in der README Datei im Verzeichnis.

:lol:

squetk 2. Aug 2013 09:41

AW: IBAN berechnen
 
Also wenn ich das hier lese:

http://www.bundesbank.de/Redaktion/D...an_regeln.html

bin ich mir nicht sicher, ob die Berechnung der IBAN nicht doch komplizierter ist als gedacht.

Zitat:

Da bei einigen Zahlungsdienstleistern bei der Umrechnung von Kontonummern und Bankleitzahlen in IBAN (und BIC) institutsindividuelle Besonderheiten hinsichtlich der Zusammensetzung der nationalen Kontokennung BBAN (Basic Bank Account Number) aus Kontonummer und Bankleitzahl zu beachten sind, haben sich die in der Deutschen Kreditwirtschaft zusammengeschlossenen Spitzenverbände sowie die Deutsche Bundesbank darauf verständigt, alle Zahlungsdienstleister mit Bankleitzahl mit dem Abkommen über die IBAN-Regeln zu verpflichten, die für ihre Zahlungskonten verwendeten Berechnungsmethoden für IBAN (und BIC) aus Kontonummer und Bankleitzahl offenzulegen.

superflexible 29. Jan 2021 21:07

AW: IBAN berechnen
 
Vielen Dank an YogiBär! Alle Achtung :=)

Immer noch nützlich auch im Jahr 2021!!

Harry Stahl 13. Sep 2023 18:41

AW: IBAN berechnen
 
Bin gerade auf diesen älteren Beitrag gestoßen:

Habe ich das jetzt richtig verstanden, dass die von Yogi-Bär gezeigte Berechnungsmethode zur Generierung der IBAN nicht immer richtig sein muss, weil viele Banken eigene bzw. abweichende Methoden zur Generierung der IBAN verwenden?

Wenn das richtig wäre, dann müsste man also so etwas wie hier (https://www.delphipraxis.net/170138-ibans.html) von Amateurprofi gemacht tun, also alle jeweiligen Prüfziffer-Berechnungsmethoden (139 oder mehr) der Banken implementieren?

himitsu 13. Sep 2023 19:36

AW: IBAN berechnen
 
Die Berechnung der Prüfziffer sollte doch unabhängig sein?

Bei der Wiki sieht es nicht so aus, als wenn es da unterschiede gibt,
Aber das Umstellen der Nummer sieht bissl unpraktisch aus. (hab mir den Artikel jetzt aber nicht durchgelesen, sondern nur die bunten Bilder überflogen)
https://de.wikipedia.org/wiki/Intern...er#Validierung

Harry Stahl 13. Sep 2023 20:38

AW: IBAN berechnen
 
Da steht ja auch:

Generierung der IBAN
Die ECBS warnt, dass die Erstellung einer IBAN ausschließlich durch die Bankinstitute erfolgen darf.[19] Das basiert darauf, dass es für die Bildung der IBAN aus herkömmlicher Bankleitzahl und Kontonummer mehrere Varianten gibt, beispielsweise bei der Bildung der Prüfsumme oder dem Wegfall von Filialnummern.

himitsu 13. Sep 2023 21:50

AW: IBAN berechnen
 
Ja, die IBAN selber ... aber hier geht es doch nur um die Prüfung-/Berechnung der Prüfsumme und nicht um die ganze IBAN?

Ja, bei der IBAN ist das Land, Prüfsummt und die "Bankkennung" sozusagen vorgegeben, aber den Rest, kann jedes Institut selbst bestimmen.
Per se muß nichtmal die Kontonummer selbst in der IBAN stecken. (wobei es natürlich für Kunden einfacher ist, wenn seine beiden Nummern "gleich" sind)

Harry Stahl 13. Sep 2023 22:19

AW: IBAN berechnen
 
Zitat:

Zitat von himitsu (Beitrag 1526888)
Ja, die IBAN selber ... aber hier geht es doch nur um die Prüfung-/Berechnung der Prüfsumme und nicht um die ganze IBAN?

Ja, bei der IBAN ist das Land, Prüfsummt und die "Bankkennung" sozusagen vorgegeben, aber den Rest, kann jedes Institut selbst bestimmen.
Per se muß nichtmal die Kontonummer selbst in der IBAN stecken. (wobei es natürlich für Kunden einfacher ist, wenn seine beiden Nummern "gleich" sind)

Das Verhältnis von IBAN zu Prüfsumme ist mir leider nicht so ganz klar. Hatte es so verstanden, dass man mit der Prüfsumme prüft, ob die IBAN korrekt ist.

Aber der Beispiel-Code von Yogi-Bär verwendet immer nur eine Methode, um aus Kontonummer und BLZ die IBAN zu generieren (IBANCreate) und nur eine Methode (IBANPruefziffer), um die IBAN auf Validität zu testen.

Das kann doch nicht ausreichend sein, wenn es 139 Prüfziffermethoden gibt (hat Amateurprofi in einem Beitrag mal gesagt), oder?

Delphi.Narium 13. Sep 2023 22:43

AW: IBAN berechnen
 
Es gibt wohl unterschiedliche Methoden, um eine IBAN zu erstellen.
Aber es gibt nur eine Methode zur Überprüfung der IBAN. Die Prüfzahl wird immer auf die gleiche Weise berechnet und geprüft.

https://www.buchhaltung-einfach-sicher.de/finanzen/iban

Code:
DEPZBankleitKontonumme
aabbcccccccc0123456789
DE ist die Länderkennung
PZ ist die Prüfzahl
Bankleit ist die Bankleitzahl
Die verbleibenden 10 Stellen sind die Kontonummer oder was auch immer die Bank da einsetzen will.

Bei der Postbank ist es die Kontonummer, wenn sie aus Zeiten der Postscheckämter stammt, linksbündig mit Nullen aufgefüllt.

Hier bei der örtlichen Volksbank befindet sich die Kontonummer in den ersten 8 Stellen des zehnstelligen Teils für die Kontonummer. An den beiden letzten Stellen kann man erkennen, ob es sich um ein Girokonto, ein Depot, Genossenschaftsanteile, ... handelt.

Ein Kunde hat dann halt bei den letzten 10 Stellen am Anfang immer die gleiche achtstellige Ziffernfolge als Konto- und Kundennummer und an den letzten beiden Stellen kann man erkennen, um was für eine "Geldanlage" es sich handelt.

Auf die Berechnung der Prüfzahl hat das keinerlei Einfluss. Die wird immer nach der gleichen Methode berechnet.

Amateurprofi 14. Sep 2023 01:17

AW: IBAN berechnen
 
Zitat:

Zitat von Harry Stahl (Beitrag 1526890)
Zitat:

Zitat von himitsu (Beitrag 1526888)
Ja, die IBAN selber ... aber hier geht es doch nur um die Prüfung-/Berechnung der Prüfsumme und nicht um die ganze IBAN?

Ja, bei der IBAN ist das Land, Prüfsummt und die "Bankkennung" sozusagen vorgegeben, aber den Rest, kann jedes Institut selbst bestimmen.
Per se muß nichtmal die Kontonummer selbst in der IBAN stecken. (wobei es natürlich für Kunden einfacher ist, wenn seine beiden Nummern "gleich" sind)

Das Verhältnis von IBAN zu Prüfsumme ist mir leider nicht so ganz klar. Hatte es so verstanden, dass man mit der Prüfsumme prüft, ob die IBAN korrekt ist.

Aber der Beispiel-Code von Yogi-Bär verwendet immer nur eine Methode, um aus Kontonummer und BLZ die IBAN zu generieren (IBANCreate) und nur eine Methode (IBANPruefziffer), um die IBAN auf Validität zu testen.

Das kann doch nicht ausreichend sein, wenn es 139 Prüfziffermethoden gibt (hat Amateurprofi in einem Beitrag mal gesagt), oder?

Da verwechselst Du Berechnung der Prüfziffern der IBAN und Berechnung der Prüfziffer der Kontonummer.
Die Berechnung der Prüfziffern der IBAN ist eindeutig und immer gleich (weltweit).
Die Berechnung der Prüfziffer der Kontonummer ist von Bank zu Bank unterschiedlich.
Ich hatte mir seinerzeit die Mühe gemacht alle (in DE) existierenden Methoden zur Berechnung der Prüfziffer zu implementieren.
Eine Aufstellung der verschiedenen Prüfmethoden findest Du hierhttps://www.bundesbank.de/resource/b...hoden-data.pdf
Früher habe ich nach jeder Änderung der Bankleitzahlen-Datei oder der Prüfmethoden ein Update meines IBAN-Programms hochzuladen.
Vor einigen Jahren funktionierte der Upload nicht mehr.
Ich hatte seinerzeit Daniel gebeten (2 Mal) das zu prüfen, habe aber keine Antwort erhalten und habe deshalb das Hochladen des geänderten Programms eingestellt.

Harry Stahl 14. Sep 2023 07:18

AW: IBAN berechnen
 
Zitat:

Zitat von Amateurprofi (Beitrag 1526892)
Zitat:

Zitat von Harry Stahl (Beitrag 1526890)
Zitat:

Zitat von himitsu (Beitrag 1526888)
Ja, die IBAN selber ... aber hier geht es doch nur um die Prüfung-/Berechnung der Prüfsumme und nicht um die ganze IBAN?

Ja, bei der IBAN ist das Land, Prüfsummt und die "Bankkennung" sozusagen vorgegeben, aber den Rest, kann jedes Institut selbst bestimmen.
Per se muß nichtmal die Kontonummer selbst in der IBAN stecken. (wobei es natürlich für Kunden einfacher ist, wenn seine beiden Nummern "gleich" sind)

Das Verhältnis von IBAN zu Prüfsumme ist mir leider nicht so ganz klar. Hatte es so verstanden, dass man mit der Prüfsumme prüft, ob die IBAN korrekt ist.

Aber der Beispiel-Code von Yogi-Bär verwendet immer nur eine Methode, um aus Kontonummer und BLZ die IBAN zu generieren (IBANCreate) und nur eine Methode (IBANPruefziffer), um die IBAN auf Validität zu testen.

Das kann doch nicht ausreichend sein, wenn es 139 Prüfziffermethoden gibt (hat Amateurprofi in einem Beitrag mal gesagt), oder?

Da verwechselst Du Berechnung der Prüfziffern der IBAN und Berechnung der Prüfziffer der Kontonummer.
Die Berechnung der Prüfziffern der IBAN ist eindeutig und immer gleich (weltweit).
Die Berechnung der Prüfziffer der Kontonummer ist von Bank zu Bank unterschiedlich.
Ich hatte mir seinerzeit die Mühe gemacht alle (in DE) existierenden Methoden zur Berechnung der Prüfziffer zu implementieren.
Eine Aufstellung der verschiedenen Prüfmethoden findest Du hierhttps://www.bundesbank.de/resource/b...hoden-data.pdf
Früher habe ich nach jeder Änderung der Bankleitzahlen-Datei oder der Prüfmethoden ein Update meines IBAN-Programms hochzuladen.
Vor einigen Jahren funktionierte der Upload nicht mehr.
Ich hatte seinerzeit Daniel gebeten (2 Mal) das zu prüfen, habe aber keine Antwort erhalten und habe deshalb das Hochladen des geänderten Programms eingestellt.

Danke Dir für die Aufklärung. Jetzt ist es klar und ich weiß, was ich implementieren kann (die computerbasierte Erstellung und Prüfung der IBAN-Nummer würde mir schon reichen: Ich möchte in einem Programm die Möglichkeit anbieten, die aktuelle Bankenliste von der Bundesbank zu importieren. Da kann dann der Anwender die Bank auswählen (hat also BLZ, BIC und Name der Bank) und mein Programm kann aus der Kontonummer, die der User eingeben muss, die IBAN errechnen und prüfen, ob die Gültigkeit stimmt. Die Verantwortung, die richtige Kontonummer einzugeben, bleibt dann beim Anwender).

Ansonsten: Was passiert denn, wenn Du den Upload hier versuchst, gibt es eine Fehlermeldung? Ich lade eigentlich sehr oft hier etwas hoch, keine Probleme (außer dass man hin und wieder mal automatisch abgemeldet wird und hin und wieder Schwierigkeiten hat, den Zustand wieder herzustellen, wo man gerade war (die Weiterleitung bei erneuter Anmeldung klappt übrigens NIE, das mit Browser zurück meistens, aber auch nicht immer).

Ja, die DP könnte schon ein kleines Update vertragen, die Beiträge auf dem Handy lesen zu können, wäre schon schön (mit der englischen Variante geht es ja). Aber wahrscheinlich würde die Umstellung zu viel Arbeit machen, nehme ich an...

Jasocul 14. Sep 2023 07:36

AW: IBAN berechnen
 
Zitat:

Zitat von Harry Stahl (Beitrag 1526899)
Danke Dir für die Aufklärung. Jetzt ist es klar und ich weiß, was ich implementieren kann (die computerbasierte Erstellung und Prüfung der IBAN-Nummer würde mir schon reichen: Ich möchte in einem Programm die Möglichkeit anbieten, die aktuelle Bankenliste von der Bundesbank zu importieren. Da kann dann der Anwender die Bank auswählen (hat also BLZ, BIC und Name der Bank) und mein Programm kann aus der Kontonummer, die der User eingeben muss, die IBAN errechnen und prüfen, ob die Gültigkeit stimmt. Die Verantwortung, die richtige Kontonummer einzugeben, bleibt dann beim Anwender).

Bitte nicht auf dieses Berechnung festlegen. Selbst in DE gibt es Banken, die sich nicht an diese Kombi aus BLZ und Konto-Nr halten. Die meisten machen es so, aber ich habe in der letzten Firma, bei der ich gearbeitet (ist auch eine Bank) auch diese IBAN-Berechnung programmiert. Es gab Ausnahmen, wodurch die IBAN dann eben nicht mit der IBAN bei der entsprechenden Bank übereinstimmte.
Du kannst das nach dem Verfahren als Vorschlag generieren lassen, aber musst die Möglichkeit der manuellen Korrektur bei der IBAN zulassen. Die IBAN-Prüfziffer muss aber in jedem Fall korrekt sein.

Harry Stahl 14. Sep 2023 07:44

AW: IBAN berechnen
 
Zitat:

Zitat von Jasocul (Beitrag 1526901)
Zitat:

Zitat von Harry Stahl (Beitrag 1526899)
Danke Dir für die Aufklärung. Jetzt ist es klar und ich weiß, was ich implementieren kann (die computerbasierte Erstellung und Prüfung der IBAN-Nummer würde mir schon reichen: Ich möchte in einem Programm die Möglichkeit anbieten, die aktuelle Bankenliste von der Bundesbank zu importieren. Da kann dann der Anwender die Bank auswählen (hat also BLZ, BIC und Name der Bank) und mein Programm kann aus der Kontonummer, die der User eingeben muss, die IBAN errechnen und prüfen, ob die Gültigkeit stimmt. Die Verantwortung, die richtige Kontonummer einzugeben, bleibt dann beim Anwender).

Bitte nicht auf dieses Berechnung festlegen. Selbst in DE gibt es Banken, die sich nicht an diese Kombi aus BLZ und Konto-Nr halten. Die meisten machen es so, aber ich habe in der letzten Firma, bei der ich gearbeitet (ist auch eine Bank) auch diese IBAN-Berechnung programmiert. Es gab Ausnahmen, wodurch die IBAN dann eben nicht mit der IBAN bei der entsprechenden Bank übereinstimmte.
Du kannst das nach dem Verfahren als Vorschlag generieren lassen, aber musst die Möglichkeit der manuellen Korrektur bei der IBAN zulassen. Die IBAN-Prüfziffer muss aber in jedem Fall korrekt sein.

Ja genau, so habe ich es vor, als Vorschlag generieren und der User muss abschließend prüfen und hat die Verantwortung. Auf die Umstände, auf die Du hinweist, wollte ich in der Dokumentation hinweisen (bzw. auch in einen kurzen Erklärvideo, dass ich für diese Erweiterung machen will).

Der Wunsch kam hier auf letztlich als Eingabe-Unterstützung zur Erfassung von Bank-Informationen, die handschriftlich zugeliefert wurden. Da gab es wohl oft Fehler bei der Erfassung der Daten (z.B. de statt DE), vertippen, etc. das kann man so schon sehr verbessern.

Amateurprofi 14. Sep 2023 16:02

AW: IBAN berechnen
 
Zitat:

Zitat von Harry Stahl (Beitrag 1526899)
Ansonsten: Was passiert denn, wenn Du den Upload hier versuchst, gibt es eine Fehlermeldung? Ich lade eigentlich sehr oft hier etwas hoch, keine Probleme (außer dass man hin und wieder mal automatisch abgemeldet wird und hin und wieder Schwierigkeiten hat, den Zustand wieder herzustellen, wo man gerade war (die Weiterleitung bei erneuter Anmeldung klappt übrigens NIE, das mit Browser zurück meistens, aber auch nicht immer).

Ich gehe davon aus dass es wieder funktioniert (nachdem ein anderer User auch auf das Problem hingewiesen hatte), habe es aber nicht getestet.

Harry Stahl 14. Sep 2023 16:10

AW: IBAN berechnen
 
So ich habe die Erweiterung nun in meinem Programm implementiert und ein kurzes Info-Video dazu gemacht.

Wer Interesse daran hat, evtl. auch als Anregung für eigene Programmerweiterungen kann es sich bei Bedarf gerne hier ansehen:

https://youtu.be/3frd_QIJ6U0?si=z0-7gfo1kxAJqwxj

Rollo62 14. Sep 2023 16:52

AW: IBAN berechnen
 
Vielleicht hilft Dir dieses hübsche Progrämmchen von Amateurprofi.
https://www.delphipraxis.net/170138-ibans.html

Es ist allerdings etwas unklar, was der aktuelle Status seit 2020 ist.

Amateurprofi 14. Sep 2023 17:45

AW: IBAN berechnen
 
Zitat:

Zitat von Rollo62 (Beitrag 1526954)
Vielleicht hilft Dir dieses hübsche Progrämmchen von Amateurprofi.
https://www.delphipraxis.net/170138-ibans.html

Es ist allerdings etwas unklar, was der aktuelle Status seit 2020 ist.

Das Programm kann einerseits IBANs prüfen (alle Länder) und für DE auch Kontonummern.
Es 'kennt' die IBAN-Formate aller in der IBAN-Registry aufgeführten Länder und für DE die Bankleitzahlendatei und alle Methoden zur Prüfung von Kontonummern, alles auf Stand vom 07.09.2020.
Wie weiter oben geschildert und begründet, habe ich den Upload eingestellt.
Hier ein paar Links
ISO3166-1-Kodierlistehttp://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste
IBANRegistryhttps://www.swift.com/sites/default/...anregistry.pdf
IBAN Strukturenhttp://de.wikipedia.org/wiki/IBAN#IB...n_L.C3.A4ndern
Bankleitzahlen Dateihttps://www.bundesbank.de/de/aufgabe...tzahlen-602592
Bankplätzehttp://de.wikipedia.org/wiki/Bankplä...hen_Bundesbank
Clearing Gebietehttp://de.wikipedia.org/wiki/Bankleitzahl#Aufbau
Bankgruppenhttp://de.wikipedia.org/wiki/Bankleitzahl#Aufbau
Prüfmethoden für Kontonummernhttps://www.bundesbank.de/resource/b...hoden-data.pdf


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz