Newsgroup: it.comp.lang.visual-basic
Titolo: Codice Fiscale

Help!! Sto cercando un prg. per Vb che mi calcoli il codice fiscale, qualche
tempo fa ne avevo visto uno qui nel N.G., ma poi non l'ho piů visto.
Grazie
Massimo
massimo.giambona(At)
sinfor.it
change (At) con @


BECCATELO !  Ciao !
Private Function CheckCodFisc(CodFis As String) As Boolean
    Dim crc As Integer
    Dim sDigit As String
    Dim bDigit As Byte
    Dim n As Byte
    For n = 0 To 14
        sDigit = Mid$(CodFis, n + 1, 1)
        bDigit = Asc(sDigit)
        If n Mod 2 Then
            If sDigit > "9" Then
                crc = crc + bDigit - Asc("A")
            Else
                crc = crc + bDigit - Asc("0")
            End If
       Else
           Select Case sDigit
            Case "A"
                crc = crc + 1
            Case "B"
                crc = crc + 0
            Case "C"
                crc = crc + 5
            Case "D"
                crc = crc + 7
            Case "E"
                crc = crc + 9
            Case "F"
                crc = crc + 13
            Case "G"
                crc = crc + 15
            Case "H"
                crc = crc + 17
            Case "I"
                crc = crc + 19
            Case "J"
                crc = crc + 21
            Case "K"
                crc = crc + 2
            Case "L"
                crc = crc + 4
            Case "M"
                crc = crc + 18
            Case "N"
                crc = crc + 20
            Case "O"
                crc = crc + 11
            Case "P"
                crc = crc + 3
            Case "Q"
                crc = crc + 6
            Case "R"
                crc = crc + 8
            Case "S"
                crc = crc + 12
            Case "T"
                crc = crc + 14
            Case "U"
                crc = crc + 16
            Case "V"
                crc = crc + 10
            Case "W"
                crc = crc + 22
            Case "X"
                crc = crc + 25
            Case "Y"
                crc = crc + 24
            Case "Z"
                crc = crc + 23
            Case "0"
                crc = crc + 1
            Case "1"
                crc = crc + 0
            Case "2"
                crc = crc + 5
            Case "3"
                crc = crc + 7
            Case "4"
                crc = crc + 9
            Case "5"
                crc = crc + 13
            Case "6"
                crc = crc + 15
            Case "7"
                crc = crc + 17
            Case "8"
                crc = crc + 19
            Case "9"
                crc = crc + 21
            End Select
        End If
    Next
    If Chr$(65 + crc Mod 26) = Mid$(CodFis, 16, 1) Then
        CheckCodFisc = True
    Else
        CheckCodFisc = False
    End If
End Function
Marco Grignoli
EMAIL: 
sinfosofNO...@tin.it
   >>Togliere NOSPAZZATURA<<


Ciao,
io ho una routine che funziona, ma č scritta in Clipper. Se nessuno ti
manda una routine in VB te la posso inviare.
Io ho un vecchio programma di gestione pratiche auto e patente che
calcolava il codice fiscale. Con l'uso sono emerse delle cose che vale
la pena considerare e chiarire con i clienti.
Il fatto č che tutti hanno giŕ un codice fiscale assegnato
dall'amministrazione statale. Lo scopo di un programma č quello di non
rimanere bloccati quando il cliente arriva senza il tesserino e non lo
ricorda.
Il problema č proprio questo: ci si aspetta che il programma produca
lo stesso codice fiscale, ma purtroppo non sempre č cosě, per vari
motivi:
- Omonimia: due persone con lo stesso nome, nate lo stesso giorno
nello stesso posto avrebbero CF uguali. Il computer "ufficiale" se ne
accorge, il tuo no. Questo č comunque un caso molto improbabile.
- Errori negli elenchi dei comuni. Su libri diversi i codici catastali
di alcuni comuni sono diversi.
- GIGO (garbage in -> garbage out). Il caso tipico č quello della
persona con due nomi. Ad esempio, puoi stare sicuro che il signor
Angelo Aldo ha comunicato entrambi i nomi quando si č fatto il
tesserino. Poi arriva da te e dice solo Angelo, cosě il CF viene
diverso. Mi č giŕ capitato anche con i comuni di nascita: un tipo
diceva di essere nato a Genova, ma il suo CF era di una persona nata a
Sampierdarena. Credo che adesso faccia parte di Genova, ma allora era
un comune.
Morale della favola: se il programma si impiega per usi seri č meglio
chiarire queste possibilitŕ PRIMA che si verifichino.
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------


Scusami Massimo... avevo capito male
