International Bank Account Number/fi

From Free Pascal wiki

English (en) suomi (fi) français (fr)

Kansainvälinen pankkitilinumero ( IBAN = International Bank Account Number ) on kansainvälinen standardi pankkien tilinumeroista. Se on määritelty ISO 13616 standardissa. IBAN sisältää maksimissaan 34 merkkiä, joka sisältää maa koodin, kaksi tarkistusnumeroa ja yksilöivän pankin tilinumeron.


Maakoodissa ilmoitetaan ISO 3166-1 alpha-2 standardin mukaisesti. Tarkistusnumero lasketaan ISO 7064 (MOD97-10) standardin mukaisesti.

Funktio IsValidIban

Funktio IsValidIban tarkistaa onko kansainvälinen pankkitilinumero sääntöjen mukainen. Funktio StrMOD97 löytyy täältä ISO_7064#Function StrMOD97

function ReplaceLetterWithNumbers ( a_char:char):string;
var
  i: integer;
begin
  i := ord( upcase( a_char ) ) - ord( 'A' ) + 10;
  result := IntToStr( i );
end;   

function IsValidIban( s:string): boolean;
var
  a_char: char;
  s1: string;
  i : integer;
begin
  s := DelSpace( s );
  s1 := copy( s, 1, 4);
  delete(s, 1, 4);
  a_char :=  s1[1];
  delete(s1, 1, 1);
  s := s + ReplaceLetterWithNumbers ( a_char ) ;
  a_char :=  s1[1];
  delete(s1, 1, 1);
  s := s + ReplaceLetterWithNumbers ( a_char ) ;
  s := s + s1;
  i := StrMOD97( s );
  Result := i = 1;
end;