Calcolo del Codice CIN in un IBAN

Posted on 24 agosto 2022. Filed under: Senza categoria |

Dal mio ultimo articolo su https://pieer11.wordpress.com/2022/07/06/controllo-delliban/ proseguiamo a calcolare il codice CIN per poi calcolare, in un altro articolo, l’IBAN.

Dati ABI, CAB e CC possiamo ottenere il codice CIN tramite posizione del numero.

Tramite ciclo for to next e array, possiamo in un attimo scrivere e ottenere il codice.

Per le posizioni dispari abbiamo questo array

1 0 5 7 9 13 15 17 19 21 2 4 18 20 11 3 6 8 12 14 16 10 22 25 24 23 27 28 26

mentre per le posizioni pari:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Ad esempio, il mio IBAN è composto da ABI CAB e CC:

0100501613000000003712

Scorriamo da sinistra a destra. Partendo da zero e partendo dalla prima posizione (per forza sarà dispari) otteniamo:

posizione dispari di 0 = 1
posizione pari di 1 = 1
posizione dispari di 0 = 1
posizione pari di 0 = 0
posizione dispari di 5 = 13
posizione pari di 0 = 0
posizione dispari di 1 = 0
posizione pari di 6 = 6
posizione dispari di 1 = 0
posizione pari di 3 = 3
posizione dispari di 0 = 1
posizione pari di 0 = 0
posizione dispari di 0 = 1
posizione pari di 0 = 0
posizione dispari di 0 = 1
posizione pari di 0 = 0
posizione dispari di 0 = 1
posizione pari di 0 = 0
posizione dispari di 3 = 7
posizione pari di 7 = 7
posizione dispari di 1 = 0
posizione pari di 2 = 2

Facciamo ora la somma e otteniamo 45. Dobbiamo dividere ora per 26 e ottenere il resto. In questo caso fa 19.

A quale lettera dell’alfabeto corrisponde il numero 19? A=1, B=2, C=3 etc etc.

19 è la lettera T, quindi il CIN corrisponde a T.

Ecco il codice da inserire in evento click del pulsante:

        Dim abi As String = "01005"
        Dim cab As String = "01613"
        Dim cc As String = "000000003712"
        Dim CIN As String = CalcolaCin(abi, cab, cc)

        MessageBox.Show("IL TUO CODICE CIN: " & CIN)

E il codice che calcola uk CIN:

    Private Function CalcolaCin(abi As String, cab As String, cc As String) As String
        Dim checkiban As String = abi & cab & cc

        Dim alfa() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

        Dim posdis() As Integer = {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23, 27, 28, 26}
        Dim pospar() As Integer = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28}


        Dim ri As Integer = 0
        Dim cr = 0
        Dim cs = 0
        Dim resto = 0
        Dim i = 0

        For Each p In checkiban
            i = i + 1
            If IsNumeric(p) = True Then
                'CARATTERE NUMERICO
                If i Mod 2 = 1 Then
                    'POSIZIONE DISPARI
                    'MessageBox.Show("DISPARI")
                    cs = cs + posdis(Val(p))
                Else
                    'POSIZIONE PARI
                    'MessageBox.Show("PARI")
                    cs = cs + pospar(Val(p))

                End If
            Else
                'CARATTERE ALFANUMERICO

            End If
        Next
        ri = Fix(cs / 26)
        cr = 26 * ri
        resto = cs - cr
        Return alfa(resto)
    End Function

Semplice, no?

Arrivederci al prossimo articolo.

Make a Comment

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Liked it here?
Why not try sites on the blogroll...

%d blogger hanno fatto clic su Mi Piace per questo: