Codice fiscale inverso, cosa ne pensate?

mercoledì 15 dicembre 2010 - 20.14
Tag Elenco Tags  C#  |  VB.NET

blackspidy14 Profilo | Junior Member

Ciao a tutti!!! stavo realizando un programmino per calcolare il codice fiscale seguendo la guida di David De Giacomi presente su "dot net hell" quando mi è venuta in mente una idea (e già ogni tanto vengono anche a me ), perchè non ricavare i dati anagrafici dal codice fiscale? allora ho fatto una piccola ricerca su internet e ho trovato alcuni siti internet che già "offrono questo servizio". per quanto riguarda la data di nascita il comune nn c sono particolari problemi, mente per il nome e il cognome le cose si complicano. mi piacere tirare fuori tutte le combinazioni possibili con quelle consonanti. ho visto che è possibile ma non ho la più pallida idea di come realizzarlo. chiunque avesse un consiglio o una idea si faccia avanti.

giulioz Profilo | Newbie

fai una list<string> con i possibili nomi (o caricati da file) e cicla con una contains() per ogni lettera.

es c#:

List<string> nomi = System.IO.File.ReadAllLines("percorsofile.txt"); // legge i nomi da file List<string> possibili = new List<string>(); // nomi possibili string letterecodice; // le 2 lettere sul codice fiscale foreach (string a in nomi) { if (a.Contains(letterecodice)) { possibili.Add(a); } }

blackspidy14 Profilo | Junior Member

ok . . . ma è così semplice
cmq dove posso trovare una lista di nomi del genere ho provato a googlare qualcosa ma non ho trovato nulla di soddisfacente

giulioz Profilo | Newbie

falla tu!

blackspidy14 Profilo | Junior Member

>falla tu!

aspetta nn prederla male . . . ma immaginavo qualcosa d + complesso cmq non ho ancora verificato il codice che mi hai inviato
appena ho 5 min c provo e ti faccio sapere cosa esce.

kataklisma Profilo | Senior Member

>fai una list<string> con i possibili nomi (o caricati da
>file) e cicla con una contains() per ogni lettera.
>
>es c#:
>
>List<string> nomi = System.IO.File.ReadAllLines("percorsofile.txt");
>// legge i nomi da file
>List<string> possibili = new List<string>(); // nomi
>possibili
>string letterecodice; // le 2 lettere sul codice fiscale
>
>foreach (string a in nomi)
>{
> if (a.Contains(letterecodice))
> {
> possibili.Add(a);
> }
>}

Ciao!

Mi dispiace ma non è proprio cosi, la funzione Contains ritorna true se e soltanto se la stringa passata come parametro è contenuta per intero nella stringa ove si effettua la Contains.

se sul codice fiscale il mio nome e cognome risultano essere CTN GNZ dovro ciclare per ogni nome presente nella lista e dovrò prendere tutti quei nominativi che presentano nel nome GNZ in maniera non casuale (sono le prime consonanti) e stessa cosa per il cognome.

Il codice che hai postato si puo tradurre in questo modo

if(Ignazio.Contains("CTNGNZ")) ...

riporterà sempre e solo false.

Ritornare ai dati anagrafici da un file di testo non formattato è praticamente impossibile (metti il caso ci sono doppi nomi o cognomi?) molto meglio un database avente una tabella di Nomi e una di Cognomi con magari all'interno un Secondo campo contenente le 3 consonanti gia calcolate.

Esempio :

Tabella Nomi:

Campo Nome; Campo ConsonantiCF; Ignazio - gnz Tabella Cognomi: Campo Cognome; Campo ConsonantiCF; Catanzaro - ctn

Ciao!
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

giulioz Profilo | Newbie

io per file intendevo così:

FILE NOMI:
Giulio Ignazio Marco Paolo

FILE COGNOMI:
Zausa Catanzaro Bianchi Rossi

non va bene così?

kataklisma Profilo | Senior Member

>io per file intendevo così:
>
>FILE NOMI:
>Giulio
>Ignazio
>Marco
>Paolo
>
>FILE COGNOMI:
>Zausa
>Catanzaro
>Bianchi
>Rossi
>
>non va bene così?

A mio modesto parere il database è sempre da preferire, per una serie di ragione che penso sia inutile elencare.
Comunque sia anche appoggiandosi a due archivi come quelli elencati da te (uno per i nomi, uno per i cognomi) il codice da te postato rimane comunque sbagliato.

Per ottenere il nominativo dalle sei lettere bisogna implementare piccoli ma necessari algoritmi e non basta una contains.

Come ho gia detto, le tre lettere del CF devono corrispondere alle prime 3 consonanti del cognome (stessa cosa per i nomi) ma non basta, se il cognome/nome ha solo due consonanti?e se ne ha una sola?

Vi riporto un semplice link:

http://www.comunecampagnano.it/htm/codice_fiscale.htm

Come vedete le situazioni possono essere molteplici e la cosa non può certo risolversi con un semplice ciclo in una lista di nomi (a meno che, come gia detto in precedenza insieme al nome vengano inserite nel DB le 3 lettere).

Ciao ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

blackspidy14 Profilo | Junior Member

>
>Ciao ;)
>------------------------------------------
>Ignazio Catanzaro
>
Ciao!
"A mai piu risentirci." ti ricorda qualcosa sta frase? vabbè non riapriamo vecchie polemiche . . .

cmq tornando in tema potrei azzardare una ipotesi che mi è venuta in mente oggi, (magari è un pò campata in aria, non ho ancora avuto modo di provarla) usando una regular expression che esegue un controllo su di una stringa (nome o cognome) per trovare le prime 3 consonanti. cosa ne pensate? è possibile?

e anche se mi duole dirlo concordo con Mr.Catanzaro preferirei usare un database.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5