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

MerciGest: il gestionale di magazzino semplice e gratuito

MerciGest è il software gestionale gratuito per Windows che semplifica la gestione del magazzino: giacenze,…

3 giorni ago

Software gestionali con SQL Server: un archivio unico, accessibile ovunque

Tutti i nostri software gestionali possono essere collegati a un database SQL Server, consentendo l’accesso…

4 giorni ago

Come iniziare ad usare MerciGest in 5 minuti

MerciGest è semplice e immediato: basta scaricare e installare il programma per iniziare subito. Al…

7 giorni ago

Cos’è MerciGest e a chi serve

MerciGest è un gestionale di magazzino per Windows pensato per negozi, piccole imprese e artigiani…

1 settimana ago

Introduzione alla Standard Template Library (STL)

La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…

7 mesi ago

Un Abbonamento per Tutti i Software

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

2 anni ago