30/08/07 7:32
BurnOut
Ciao! Ho uno nuovo... penso il più giovane (12 anni quasi 13)...
Ho provato a copiare e incollare il codice VB.NET in visual basic 2005 express edition ... ma ha alcuni errori (dichiarazione array (3))...
Se vuoi guardare il mio blog... alla ricerca di qualcosa di utile
pitbullx94.spaces.live.com/
pitbullx94.spaces.live.com/
Ho provato a copiare e incollare il codice VB.NET in visual basic 2005 express edition ... ma ha alcuni errori (dichiarazione array (3))...
Se vuoi guardare il mio blog... alla ricerca di qualcosa di utile
pitbullx94.spaces.live.com/
pitbullx94.spaces.live.com/
aaa
30/08/07 16:31
psycho85
Ciao, ho dato uno sguardo al tuo blog, molto carino...però non ho trovato niente che mi aiutasse a risolvere il problema
aaa
01/09/07 10:24
Il Totem
Infatti, BurnOut, alias Skull, ha postato qualcosa che potrei definire spam, dato che il suo blog non c'entra niente con la discussione.
Ho guardato il codice, ma quello non genera un codice fiscale, ma lo analizza e oltretutto usa le espressioni regolari. Se mi posti una descrizione di come fare a creare il codice fiscale con il tuo sorgente posso darti una mano.
Ho guardato il codice, ma quello non genera un codice fiscale, ma lo analizza e oltretutto usa le espressioni regolari. Se mi posti una descrizione di come fare a creare il codice fiscale con il tuo sorgente posso darti una mano.
aaa
01/09/07 11:09
psycho85
Allora, il codice fiscale è formato da 16 cifre alfanumeriche, quindi numeri e lettere.
Io ho ricavato le prime 15, queste si ricavano dai dati anagrafici del soggetto:
Cognome - 3 Lettere
Nome - 3 Lettere
Data di nascita - 5 Caratteri alfanumerici
Anno - 2 Numeri
Mese - 1 Lettera
Giorno - 2 Numeri
Comune di nascita - 4 Caratteri alfanumerici
---
l'ultimo numero è il risultato di un algoritmo dei precedenti 15 caratteri alfanumerici ricavati.
per vedere come calcolarlo vi invito a leggere la tabella del sito dell'agenzia delle entrate...
agenziaentrate.it/ilwwcm/connect/Nsi/Servizi/Codice+fiscale+-+tessera+sanitaria/Codice+fiscale/…
Io ho ricavato le prime 15, queste si ricavano dai dati anagrafici del soggetto:
Cognome - 3 Lettere
Nome - 3 Lettere
Data di nascita - 5 Caratteri alfanumerici
Anno - 2 Numeri
Mese - 1 Lettera
Giorno - 2 Numeri
Comune di nascita - 4 Caratteri alfanumerici
---
l'ultimo numero è il risultato di un algoritmo dei precedenti 15 caratteri alfanumerici ricavati.
per vedere come calcolarlo vi invito a leggere la tabella del sito dell'agenzia delle entrate...
agenziaentrate.it/ilwwcm/connect/Nsi/Servizi/Codice+fiscale+-+tessera+sanitaria/Codice+fiscale/…
aaa
01/09/07 11:45
Il Totem
Allora ho letto un articolo: l'ultimo carattere da inserire è il carattere di controllo, calcolato con un algoritmo in funzione dei primi 15 caratteri. Supponendo di avere un array Values() di bytes contenente i valori assegnati ai posti dispari, come descritto qui alexandrerodichevski.chiappani.it/…, il codice vb.net che penso è questo:
Non l'ho provato, fammi sapere.
Dim Values() As Byte = {...} Dim Somma As Int16 = 0 Dim Codice As Byte Dim Controllo As Char 'Calcola la somma di tutti i caratteri da 1 a 15 For I As Byte = 0 To 14 'Calcola il codice del carattere: If Char.IsDigit(CodiceFisc(I)) Then Codice = Val(CodiceFisc(I)) Else Codice = Asc(CodiceFisc(I)) - Asc("A") End If 'Per i posti pari, aggiunge il codice If I Mod 2 = 0 Then Somma += Codice Else 'Per i posti dispari aggiunge un codice relativo 'Assegnato sulla base di Values() Somma += Values(Codice) End If Next 'Divide la somma per 26 e ne preleva il resto Somma = Somma Mod 26 'Usa il resto per convertirlo in lettera e lo mette in Controllo Controllo = Chr(Somma + Asc("A"))
Non l'ho provato, fammi sapere.
aaa
01/09/07 12:13
psycho85
provo il codice il prima possibile, sta sera ti faccio sapere....grazie per l'aiuto TOTEM...
aaa
03/09/07 16:19
psycho85
Allora, sono riuscito a fare tutto, ho utilizzato un procedimento strano ma funge...
Dim varCodice_Fiscale As String = lblCodice_Fiscale.Text
Dim varSomma_Dispari As Integer = 0
Dim varSomma_Pari As Integer = 0
Dim varCodice_Controllo As String = ""
Dim q As Integer
Dim w As Integer
For w = 2 To 14
'esamino caratteri pari
carattere = Mid$(varCodice_Fiscale, w, 1)
varSomma_Pari = varSomma_Pari + Lettera2Pari(carattere)
w = w + 1
Next
For q = 1 To 15
'esamino caratteri dispari
carattere = Mid$(varCodice_Fiscale, q, 1)
varSomma_Dispari = varSomma_Dispari + Lettera2Dispari(carattere)
q = q + 1
Next
Dim somma As Integer = (varSomma_Pari + varSomma_Dispari) Mod 26
Select Case somma
Case "0" : varCodice_Controllo = "A"
Case "1" : varCodice_Controllo = "B"
Case "2" : varCodice_Controllo = "C"
Case "3" : varCodice_Controllo = "D"
Case "4" : varCodice_Controllo = "E"
Case "5" : varCodice_Controllo = "F"
Case "6" : varCodice_Controllo = "G"
Case "7" : varCodice_Controllo = "H"
Case "8" : varCodice_Controllo = "I"
Case "9" : varCodice_Controllo = "J"
Case "10" : varCodice_Controllo = "K"
Case "11" : varCodice_Controllo = "L"
Case "12" : varCodice_Controllo = "M"
Case "13" : varCodice_Controllo = "N"
Case "14" : varCodice_Controllo = "O"
Case "15" : varCodice_Controllo = "P"
Case "16" : varCodice_Controllo = "Q"
Case "17" : varCodice_Controllo = "R"
Case "18" : varCodice_Controllo = "S"
Case "19" : varCodice_Controllo = "T"
Case "20" : varCodice_Controllo = "U"
Case "21" : varCodice_Controllo = "V"
Case "22" : varCodice_Controllo = "W"
Case "23" : varCodice_Controllo = "X"
Case "24" : varCodice_Controllo = "Y"
Case "25" : varCodice_Controllo = "Z"
End Select
Public Function Lettera2Dispari(ByVal carattere As String) As Integer
Dim numero As Integer
Select Case carattere
Case "0" : numero = 1
Case "1" : numero = 0
Case "2" : numero = 5
Case "3" : numero = 7
Case "4" : numero = 9
Case "5" : numero = 13
Case "6" : numero = 15
Case "7" : numero = 17
Case "8" : numero = 19
Case "9" : numero = 21
Case "A" : numero = 1
Case "B" : numero = 0
Case "C" : numero = 5
Case "D" : numero = 7
Case "E" : numero = 9
Case "F" : numero = 13
Case "G" : numero = 15
Case "H" : numero = 17
Case "I" : numero = 19
Case "J" : numero = 21
Case "K" : numero = 2
Case "L" : numero = 4
Case "M" : numero = 18
Case "N" : numero = 20
Case "O" : numero = 11
Case "P" : numero = 3
Case "Q" : numero = 6
Case "R" : numero = 8
Case "S" : numero = 12
Case "T" : numero = 14
Case "U" : numero = 16
Case "V" : numero = 10
Case "W" : numero = 22
Case "X" : numero = 25
Case "Y" : numero = 24
Case "Z" : numero = 23
End Select
Lettera2Dispari = numero
End Function
Public Function Lettera2Pari(ByVal carattere As String) As Integer
Dim numero As Integer
Select Case carattere
Case "0" : numero = 0
Case "1" : numero = 1
Case "2" : numero = 2
Case "3" : numero = 3
Case "4" : numero = 4
Case "5" : numero = 5
Case "6" : numero = 6
Case "7" : numero = 7
Case "8" : numero = 8
Case "9" : numero = 9
Case "A" : numero = 0
Case "B" : numero = 1
Case "C" : numero = 2
Case "D" : numero = 3
Case "E" : numero = 4
Case "F" : numero = 5
Case "G" : numero = 6
Case "H" : numero = 7
Case "I" : numero = 8
Case "J" : numero = 9
Case "K" : numero = 10
Case "L" : numero = 11
Case "M" : numero = 12
Case "N" : numero = 13
Case "O" : numero = 14
Case "P" : numero = 15
Case "Q" : numero = 16
Case "R" : numero = 17
Case "S" : numero = 18
Case "T" : numero = 19
Case "U" : numero = 20
Case "V" : numero = 21
Case "W" : numero = 22
Case "X" : numero = 23
Case "Y" : numero = 24
Case "Z" : numero = 25
End Select
Lettera2Pari = numero
End Function
Dim varCodice_Fiscale As String = lblCodice_Fiscale.Text
Dim varSomma_Dispari As Integer = 0
Dim varSomma_Pari As Integer = 0
Dim varCodice_Controllo As String = ""
Dim q As Integer
Dim w As Integer
For w = 2 To 14
'esamino caratteri pari
carattere = Mid$(varCodice_Fiscale, w, 1)
varSomma_Pari = varSomma_Pari + Lettera2Pari(carattere)
w = w + 1
Next
For q = 1 To 15
'esamino caratteri dispari
carattere = Mid$(varCodice_Fiscale, q, 1)
varSomma_Dispari = varSomma_Dispari + Lettera2Dispari(carattere)
q = q + 1
Next
Dim somma As Integer = (varSomma_Pari + varSomma_Dispari) Mod 26
Select Case somma
Case "0" : varCodice_Controllo = "A"
Case "1" : varCodice_Controllo = "B"
Case "2" : varCodice_Controllo = "C"
Case "3" : varCodice_Controllo = "D"
Case "4" : varCodice_Controllo = "E"
Case "5" : varCodice_Controllo = "F"
Case "6" : varCodice_Controllo = "G"
Case "7" : varCodice_Controllo = "H"
Case "8" : varCodice_Controllo = "I"
Case "9" : varCodice_Controllo = "J"
Case "10" : varCodice_Controllo = "K"
Case "11" : varCodice_Controllo = "L"
Case "12" : varCodice_Controllo = "M"
Case "13" : varCodice_Controllo = "N"
Case "14" : varCodice_Controllo = "O"
Case "15" : varCodice_Controllo = "P"
Case "16" : varCodice_Controllo = "Q"
Case "17" : varCodice_Controllo = "R"
Case "18" : varCodice_Controllo = "S"
Case "19" : varCodice_Controllo = "T"
Case "20" : varCodice_Controllo = "U"
Case "21" : varCodice_Controllo = "V"
Case "22" : varCodice_Controllo = "W"
Case "23" : varCodice_Controllo = "X"
Case "24" : varCodice_Controllo = "Y"
Case "25" : varCodice_Controllo = "Z"
End Select
Public Function Lettera2Dispari(ByVal carattere As String) As Integer
Dim numero As Integer
Select Case carattere
Case "0" : numero = 1
Case "1" : numero = 0
Case "2" : numero = 5
Case "3" : numero = 7
Case "4" : numero = 9
Case "5" : numero = 13
Case "6" : numero = 15
Case "7" : numero = 17
Case "8" : numero = 19
Case "9" : numero = 21
Case "A" : numero = 1
Case "B" : numero = 0
Case "C" : numero = 5
Case "D" : numero = 7
Case "E" : numero = 9
Case "F" : numero = 13
Case "G" : numero = 15
Case "H" : numero = 17
Case "I" : numero = 19
Case "J" : numero = 21
Case "K" : numero = 2
Case "L" : numero = 4
Case "M" : numero = 18
Case "N" : numero = 20
Case "O" : numero = 11
Case "P" : numero = 3
Case "Q" : numero = 6
Case "R" : numero = 8
Case "S" : numero = 12
Case "T" : numero = 14
Case "U" : numero = 16
Case "V" : numero = 10
Case "W" : numero = 22
Case "X" : numero = 25
Case "Y" : numero = 24
Case "Z" : numero = 23
End Select
Lettera2Dispari = numero
End Function
Public Function Lettera2Pari(ByVal carattere As String) As Integer
Dim numero As Integer
Select Case carattere
Case "0" : numero = 0
Case "1" : numero = 1
Case "2" : numero = 2
Case "3" : numero = 3
Case "4" : numero = 4
Case "5" : numero = 5
Case "6" : numero = 6
Case "7" : numero = 7
Case "8" : numero = 8
Case "9" : numero = 9
Case "A" : numero = 0
Case "B" : numero = 1
Case "C" : numero = 2
Case "D" : numero = 3
Case "E" : numero = 4
Case "F" : numero = 5
Case "G" : numero = 6
Case "H" : numero = 7
Case "I" : numero = 8
Case "J" : numero = 9
Case "K" : numero = 10
Case "L" : numero = 11
Case "M" : numero = 12
Case "N" : numero = 13
Case "O" : numero = 14
Case "P" : numero = 15
Case "Q" : numero = 16
Case "R" : numero = 17
Case "S" : numero = 18
Case "T" : numero = 19
Case "U" : numero = 20
Case "V" : numero = 21
Case "W" : numero = 22
Case "X" : numero = 23
Case "Y" : numero = 24
Case "Z" : numero = 25
End Select
Lettera2Pari = numero
End Function
aaa