Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Prüfziffer für IBAN berechnen

  Alt 12. Sep 2013, 15:48
Dieses "csmax" kann man sich schenken.
Bei der Modulo-Arithmetik rechnet man einfach nach jeder Operation mit mod 97 :
Delphi-Quellcode:
FUNCTION CreateGermanIBAN(Const BankCode,Account:String):String;
var cs, i,cc:integer; s:string;
begin
   if (Length(BankCode)<>8) or (Length(Account)<>10) then Exit('');
   s:=BankCode+Account+'131400'; // 131400 = 'DE00'
   cs:=0;
   for i:=1 to Length(s) do begin
      cs:=(cs*10+Ord(s[i])-Ord('0')) mod 97;
   end;
   cc:=98-cs;
   if cc<2 then inc(cc,97); // 00-->97, 01--> 98
   result:='DE00';
   result[3]:=Chr(cc div 10+Ord('0'));
   result[4]:=Chr(cc mod 10+Ord('0'));
   result:=result+BankCode+Account;
end;
fork me on Github
  Mit Zitat antworten Zitat