Finalmente siamo arrivati a calcolare il carattere di controllo finale del codice fiscale utilizzando il linguaggio C#. Prima di mostrarvi il codice, devo fare una premessa: il risultato finale è dato dalla somma dei pesi dei caratteri pari e quelli dispari, quindi occorre calcolare il modulo di 26 del valore trovato e a questo risultato bisogna aggiungere 65 in modo da avere il numero del carattere ASCII corrispondente; a questo punto si trasforma il numero nel carattere equivalente ed il gioco è fatto. Per trasformare i caratteri nel relativo numero ASCII ho utilizzato Convert.ToInt32(), mentre per il compito inverso Convert.ToChar().
...
private char CodFiscControl(string strVal)
{
int pesi = 0;
int[] arrPesi = {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 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};
strVal = strVal.ToUpper();
for (int i = 0; i < strVal.Length; ++i)
{
if (((i + 1) % 2) == 0)
{
if (Convert.ToInt32(strVal[i]) >=
Convert.ToInt32('0') &&
Convert.ToInt32(strVal[i]) <=
Convert.ToInt32('9'))
pesi += Convert.ToInt32(strVal[i]) -
Convert.ToInt32('0');
else if (Convert.ToInt32(strVal[i]) >=
Convert.ToInt32('A') &&
Convert.ToInt32(strVal[i]) <=
Convert.ToInt32('Z'))
pesi += Convert.ToInt32(strVal[i]) -
Convert.ToInt32('A');
}
else
{
if (Convert.ToInt32(strVal[i]) >=
Convert.ToInt32('0') &&
Convert.ToInt32(strVal[i]) <=
Convert.ToInt32('9'))
pesi += arrPesi[Convert.ToInt32(strVal[i]) -
Convert.ToInt32('0')];
else if (Convert.ToInt32(strVal[i]) >=
Convert.ToInt32('A') &&
Convert.ToInt32(strVal[i]) <=
Convert.ToInt32('Z'))
pesi += arrPesi[Convert.ToInt32(strVal[i]) -
Convert.ToInt32('A') + 10];
}
}
return Convert.ToChar(65 + (pesi % 26));
}
...
Se avete problemi e volete chiedermi qualcosa utilizzate il nostro forum al quale finora nessuno partecipa, forse perché snobbate il mio corso sul C# o siete timidi!
Vi rilascio il codice sorgente del codice fiscale in C#, ( il database dei comuni Italiani sapete dov’è ) utile anche per applicazioni gestionali reali. Spero comunque che studiate per capire come si calcola il codice fiscale, prelevare il lavoro già fatto è fin troppo semplice e non vi porterà mai ad essere dei programmatori.
<< Lezione Precedente – Inizio Corso – Indice Lezioni – Articolo Successivo >>