Categories: C# (sharp)

Primi Sei Caratteri del Codice Fiscale in C#

Nella lezione precedente avevamo iniziato la stesura di una classe CPersona contenente anche il codice fiscale, che viene calcolato con i dati disponibili. In questa nuova lezione vedremo come estrapolare i caratteri, 3 dal nome e 3 dal cognome, che compongono i primi sei caratteri del codice fiscale. Se non lo avete fatto la volta scorsa vi suggerisco di leggervi questa mia pagina nella quale dico tutto sul codice fiscale. Implementiamo una funzione che restituisca i 3 caratteri dal nome ed i 3 caratteri dal cognome.

...
private bool FindString(string strVal, char cVal)
{
   foreach (char c in strVal)
   {
      if (c == cVal)
        return true;
   }
   return false;
}

private string ExtractChars(string strVal, bool bCognome)
{
   string retValue = "";
   string strVoc = "AaEeIiOoUu";
   int numCon = 0;
   int numVoc = 0;
   for (int i = 0; i < strVal.Length; ++i)
   {
      if (!FindString(strVoc, strVal[i]) && strVal[i] != ' ')
      {
         retValue += strVal[i];
         ++numCon;
      }
      if (numCon >= 3)
      {
        if (bCognome)
        {
           break;
        }
        else
        {
           for (int k = i + 1; k <= strVal.Length; ++k)
           {
               if (!FindString(strVoc, strVal[k]) && strVal[k] != ' ')
               {
                   retValue += strVal[k];
                   string strTemp = retValue;
                   retValue = strTemp.Substring(0, 1);
                   retValue += strTemp.Substring(strTemp.Length - 2, 2);
                   i = strVal.Length;
                   break;
               }
          }
        }
       }
     }
     if (numCon < 3)
     {
       for (int i = 0; i < strVal.Length; ++i)
       {
          if (FindString(strVoc, strVal[i]))
          {
             retValue += strVal[i];
             ++numVoc;
          }
          if ((numCon + numVoc) >= 3)
             break;
       }
      }
      if ((numCon + numVoc) < 3)
      {
         if ((numCon + numVoc) == 0)
           retValue = "***";
         if ((numCon + numVoc) == 1)
           retValue = "***";
         if ((numCon + numVoc) == 2)
           retValue += 'X';
      }
      return retValue;
}
...

Ho creato 2 metodi privati che ovviamente vanno inseriti nella nostra classe e penso siano abbastanza chiari, quindi studiate il codice riga per riga cercando di capire cosa ho fatto. Se qualcuno avesse in mente un altro procedimento o volesse cambiare qualcosa, potete farmelo sapere.
Se qualcuno avesse bisogno di maggiori informazioni o vuole richiedermi qualcosa può porre le sue domande nel forum dedicato a questo linguaggio.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

10 mesi ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

11 mesi ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

3 anni ago