Hallo,
ich habe heute angefangen, eine Klasse zu schreiben, mit deren Hilfe man IBANs erstellen und verifizieren kann.
Die Klasse ist (noch) relativ übersichtlich und die Eigenschaften haben sprechende Namen, so das man eigentlich sofort anfangen kann, sie zu verwenden.
Delphi-Quellcode:
TIBAN = class
private
FKTO: string;
FBLZ: string;
FLand: string;
FIBAN: string;
procedure SetLand(const aValue: string);
function CodiereLandIBAN(const aLand: string): string;
function Modulo97PruefZiffer(const aIBAN:string):Integer;
function GetIBANMetrics: TIBANMetrics;
function PruefeIBAN: Boolean;
function BerechneIBAN: string;
function GetLand: string;
function GetCountryFromIBAN: string;
procedure SetIBAN(const aValue: string);
public
property Konto: string read FKTO write FKTO;
property BLZ: string read FBLZ write FBLZ;
property Land: string read GetLand write SetLand;
property IBAN: string read BerechneIBAN write SetIBAN;
property Valid: Boolean read PruefeIBAN;
end;
Momentan "kennt" die Klasse die IBAN-Muster von Deutschland und den direkt angrenzenden Staaten. Um die Klasse mit weiteren Staaten nutzen zu können, muss lediglich die Funktion
GetIBANMetrics
entsprechend ergänzt werden. Das von GetIBANMetrics zurück gelieferte TIBANMetrics-Record beinhaltet Informationen über die Länge der IBAN, die Startposition der BLZ und der KTO sowie deren jeweilige Länge. Die Angabe der Startpositionen ist notwendig, da einige Staaten zusätzliche Kontrollziffern verwenden.
Delphi-Quellcode:
TIBANMetrics = packed record
nLenIBAN: Word;
nStartBLZ: Word;
nLenBLZ: Word;
nStartKTO: Word;
nLenKTO: Word;
end;
Die jeweils aktuellste Version kann über Google Code (
https://code.google.com/p/tiban/) bezogen werden