Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 54.955
  • Views Posts: 419.002
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

VB.NET - FUNZIONE CHE CALCOLA IL CODICE DI CONTROLLO DEL CODICE FISCALE (VALIDARE IL CODICE FISCALE)

VB.NET - FUNZIONE CHE CALCOLA IL CODICE DI CONTROLLO DEL CODICE FISCALE (VALIDARE IL CODICE FISCALE)

Oggi vi metto a disposizione la Funzione che serve per Validare un Codice Fiscale e quindi quella che calcola il codice di controllo del Codice Fiscale.

Prima di iniziare serve creare delle Variabili Pubbliche per far funzionare la Funzione del Calcolo del Codice di Controllo del Codice Fiscale :

    Public ArrayCharPosizioneDispari() 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}
    Public ArrayChar() 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"}
    Public ArrayPari As New ArrayList
    Public ArrayDispari As New ArrayList
  
Il parametro che serve per far funzionare la funzione è :

CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:

     Dim Controllo As Boolean = CarattereControllo("rssmra50a01f205r")
     if Controllo = TRUE then
          Msgbox("Codice Fiscale Corretto", vbInformation ,"Codice Fiscale Corretto")
     Else
          MsgBox("Errore Codice Fiscale ", vbInformation, "ATTENZIONE!!! Errore")
     End If

La Funzione del Calcolo del codice di controllo del codice fiscale e restituisce TRUE = Codice Fiscale Corretto ; FALSE = Codice Fiscale Errato :

CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:

    Private Function CarattereControllo(ByVal CodiceFiscale As String) As Boolean
        Dim risultato As Integer = 0
        Dim sommapari As Integer = 0
        Dim sommadispari As Integer = 0
        Try
            If CodiceFiscale.ToString <> "" Then
                For i As Integer = 0 To CodiceFiscale.Length - 2 Step 1
                    'Vi ricordo che l'array parte da zero ma noi dobbiamo calcolare come se fosse 1 
                    'e quindi Dispari si trovano nella posizione Pari e i Pari si trovano nella posizione Dispari
                    If i Mod (2) = 1 Then
                        'Indice Dispari - Posizione Dispari)
                        ArrayPari.Add(CodiceFiscale.Substring(i, 1).ToString)
                    Else
                        'Indice Pari - Posizione Pari
                        ArrayDispari.Add(CodiceFiscale.Substring(i, 1).ToString)
                    End If
                Next
                For i As Integer = 0 To ArrayPari.Count - 1 Step 1
                    If IsNumeric(ArrayPari(i).ToString) Then
                        sommapari = sommapari + ArrayPari(i).ToString
                        'Console.WriteLine(ArrayPari(i).ToString & " ArrayPari(" & i & ").ToString = " & ArrayPari(i).ToString)
                    Else
                        For j As Integer = 0 To ArrayChar.Length - 1 Step 1
                            If (UCase(ArrayPari(i).ToString) = ArrayChar(j).ToString) Then
                                sommapari = sommapari + j
                                'Console.WriteLine(ArrayPari(i).ToString & " ArrayPari(" & i & ").ToString = " & j)
                                Exit For
                            End If
                        Next
                    End If
                Next
                For i As Integer = 0 To ArrayDispari.Count - 1 Step 1
                    If IsNumeric(ArrayDispari(i).ToString) Then
                        sommadispari = sommadispari + ArrayCharPosizioneDispari(ArrayDispari(i).ToString).ToString
                        'Console.WriteLine(ArrayDispari(i).ToString & " ArrayDispari(" & i & ").ToString = " & ArrayCharPosizioneDispari(ArrayDispari(i).ToString).ToString)
                    Else
                        For j As Integer = 0 To ArrayChar.Length - 1 Step 1
                            If (UCase(ArrayDispari(i).ToString) = ArrayChar(j).ToString) Then
                                sommadispari = sommadispari + ArrayCharPosizioneDispari(j).ToString
                                'Console.WriteLine(ArrayDispari(i).ToString & " ArrayCharPosizioneDispari(" & j & ").ToString = " & ArrayCharPosizioneDispari(j).ToString)
                                Exit For
                            End If
                        Next
                    End If
                Next
            End If
            risultato = 0
            ArrayPari.Clear()
            ArrayDispari.Clear()
            risultato = (sommapari + sommadispari) Mod 26 'Restituisce il Resto con il comando Mod 
            'Console.WriteLine(ArrayChar(risultato).ToString & " = " & CodiceFiscale.Substring(CodiceFiscale.Length - 1, 1).ToString)
    'Controllo che la lettera che si trova nella posizione risultato o resto corrisponde a l'ultima lettera del codice fiscale passato
            If (ArrayChar(risultato).ToString = UCase(CodiceFiscale.Substring(CodiceFiscale.Length - 1, 1).ToString)) Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            'Errore generato da qualche numero e carattere strano
            Return False
        End Try
    End Function
    

Categoria: VB.NET
sabato, 23 giu 2012 Ore. 11.43

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003