Titolo: Controllo del Codice IBAN
Categoria: Codice |
|
Ultimo Aggiornamento: 30/04/04 |
L’IBAN (International Bank Account Number) è la coordinata bancaria internazionale che consente di identificare, in maniera standard, il conto corrente del beneficiario permettendo all’ordinante o alla banca di quest’ultimo di verificarne la correttezza grazie ai due caratteri di controllo.
La struttura dell’IBAN per l’Italia è fissata in 27 caratteri:
1) IT = ISO Country Code, identificativo per l'italia (SM per San Marino)
2) 1 = CIN carattere alfabetico di controllo
3) 5 = ABI o Bank Code solo numeri
4) 5 = CAB o Branch Code solo numeri
5) 12 = C/C numero di conto (solo numeri riempito a sinistra di zeri)
Potete trovare nfo più dettagliate sul sito: http://www.ecbs.org/iban.htm
`Marco Caratto 5-3-2004
`procedura di verifica codice IBAN, restituisce True se corretto
C_TEXT($1;$V_Tx_Deposito;$V_Tx_StringaRisultante)
C_INTEGER($V_I_conta;$V_I_Carattere;$V_I_Resto) ` variabile contatore
C_BOOLEAN($0)
$0:=
True ` imposto il default a vero
$V_Tx_StringaRisultante:="" ` variabile per la stringa di controllo
$V_I_Resto:=0 ` variabile per il resto della divisione per 97
If (
Length($1)<5)
` se la lunghezza del iban è inferiore a 5 è sbagliato
$0:=
FalseElse ` metto i primi 4 caratteri in coda
$V_Tx_Deposito:=
Substring($1;5)+
Substring($1;1;4)
If (
Substring($1;3;2)>"96")
$0:=
False ` il codice di controllo non può essere superiore a 96
Else For ($V_I_conta;1;
Length($V_Tx_Deposito))
` esamino il$V_I_conta esimo carattere
$V_I_Carattere:=
Ascii(Substring($V_Tx_Deposito;$V_I_conta;1))
If (($V_I_Carattere>=48) & ($V_I_Carattere<=57)) ` per cifra 0-9
If (($V_I_conta=(
Length($V_Tx_Deposito)-3)) | ($V_I_conta=(Length($V_Tx_Deposito)-2)))
$0:=
False ` il primo ed il secondo carattere non possono essere numeri
End if $V_I_Numero:=$V_I_Carattere-48
Else If (($V_I_Carattere>=65) & ($V_I_Carattere<=90)) ` per cifra 0-9
If (($V_I_conta=(
Length($V_Tx_Deposito)-1)) | ($V_I_conta=(Length($V_Tx_Deposito))))
$0:=
False ` il terzo ed il quarto carattere non possono essere lettere
End if $V_I_Numero:=$V_I_Carattere-55
End if End if If ($V_I_Numero>9)
$V_I_Resto:=
Mod((100*$V_I_Resto+$V_I_Numero);97)
Else $V_I_Resto:=
Mod((10*$V_I_Resto+$V_I_Numero);97)
End if End for $0:=($V_I_Resto=1) ` se il resto finale è 1 il codice è corretto
End if End if
Inviato da: Marco Caratto |
|
Visite: 22387 |
Se accedi con utente e password, puoi aggiungere dei commenti.