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 >>