Sapete dirmi come si usano le espressioni regolari in VB6?
In particolare mi interessa verificare la struttura di un codice fiscale.
Grazie a tutti
Sapete dirmi come si usano le espressioni regolari in VB6?
In particolare mi interessa verificare la struttura di un codice fiscale.
Grazie a tutti
dato che nessuno risponde mi chiedo: esistono le espressioni regolari in VB6?
No, prova però a guardare questo sito, un pazzoide ha implemetato un motore di regex su vb6 discretamente funzionante, e scarsamente documentato.
http://sourceforge.net/projects/patternpro-rxe/
Per il codice fiscale fai in questo modo
(raccolta di vare discussioni)
IL CODICE FISCALE
IL CODICE FISCALE VA CALCOLATO COME SEGUE
__CCC NNN AA M GG L VVV K
__||| ||| || | || | ||| |
__\|/ \|/ |/ | |/ \ \|/ |
___| __| _| _|_| _ \_| _|
___| __| _| _|_| __ \| _\- 1 lettera Calcolo algebrico dei 15 precedenti
___| __| _| _|_| _ _ \---- 4 Cifre ASSEGNATE al luogo di Nascita_ _
___| __| _| _|_\---------- 2 cifre del Giorno della Data di Nascita _
___| __| _| _\------------ 1 lettera Mese della Data di Nascita
___| __| _\--------------- 2 ultime cifre dell'Anno della Data di Nascita
___|___\------------------ 3 lettere del Nome (prevalentemente consonanti)
___\---------------------- 3 lettere del Cognome (prevalentemente consonanti)
__________________________----
___________________________16
Il significato dettagliato delle singole componenti e' il seguente:
CCC NNN AA M GG L VVV K
^^^
Tre caratteri alfabetici maiuscoli della prima, seconda e terza (1',2',3')
consonante del Cognome.
Se le consonanti per il Cognome fossero meno di tre, aggiungere le vocali nello
stesso ordine in cui si presentano.
Se l'intero Cognome fosse piu' corto di tre caratteri, aggiungere una X per ogni
carattere mancante.
Per le donne coniugate considerare solo il Cognome da nubile.
Nei Cognomi composti da piu' parti, gli spazi intermedi non vanno considerati
( es. De Rossi D'Aquino sara' DEROSSIDAQUINO ).
CCC NNN AA M GG L VVV K
____^^^
Tre caratteri alfabetici maiuscoli della prima, seconda e quarta (1',2',4')
consonante del Nome.
Se le consonanti per il Nome fossero solo tre, le si prendono nell'ordine in cui
si presentano.
Se le consonanti fossero meno di tre, aggiungere le vocali nello stesso ordine
in cui si presentano.
Se l'intero Nome fosse piu' corto di tre caratteri, aggiungere una X per ogni
carattere mancante.
Nei Nomi composti da piu' parti, gli spazi intermedi non vanno considerati
( es. Antonia Maria Luisa sara' ANTONIAMARIALUISA )
CCC NNN AA M GG L VVV K
________^^
Due caratteri numerici per l'anno di nascita, solo le unita' e le decine (le
ultime due cifre)
(es. 1968 diventa 68)
CCC NNN AA M GG L VVV K
___________^
Un carattere alfabetico indicante il Mese della Data di Nascita Considerando
questa tabella:
____A= Gennaio; __B= Febbraio; C= Marzo; ___D= Aprile;
____E= Maggio; ___H= Giugno; __L= Luglio; __M= Agosto;
____P= Settembre; R= Ottobre; _S= Novembre; T= Dicembre
CCC NNN AA M GG L VVV K
_____________^^
Due caratteri numerici per il giorno di nascita. Per le donne, occore sommare al
giorno di nascita 40.
es. uomo nati il 7/8/1968 = 07
____donna nata il 7/8/1968 = 47
CCC NNN AA M GG L VVV K
________________^_^^^
Quattro caratteri alfanumerici.
Codice del Comune di nascita rilevato dai volumi dei Codici dei comuni di Italia
e degli Stati esteri, redatti dalla Direzione generale del Catasto.
Esistono database che contencono la relazione Comune <-> Codice Catasto.
CCC NNN AA M GG L VVV K
______________________^
Un carattere alfabetico Carattere di controllo ottenuto convertemdo i singoli
caratteri in posizione pari secondo i valori della Tabella [A], ed i caratteri
in posizione dispari secondo i valori della Tabella [B].
Si sommano i valori ottenuti dalla conversione ed il totale lo si Divide per 26.
Il resto della divisione lo si converte secondo la Tabella C.
TABELLA [ A ] (caratteri in posizione pari)
_0=0_ 1=1 _2=2_ 3=3_ 4=4 _5=5 _6=6_ 7=7 _8=8 _9=9
_A=0 _B=1 _C=2__D=3 _E=4 _F=5_ G=6 _H=7 _I=8 _J=9
_K=10 L=11 M=12 N=13 O=14 P=15_Q=16 R=17 S=18 T=19
_U=20 V=21 W=22 X=23 Y=24 Z=25
TABELLA [ B ] (caratteri in posizione dispari)
_0=1_ 1=0_ 2=5 _3=7 _4=9_ 5=13 6=15 7=17 8=19 9=21
_A=1 _B=0 _C=5_ D=7_ E=9 _F=13_G=15_H=17_I=19_J=21
_K=2_ L=4 _M=18_N=20 O=11 P=3 _Q=6_ R=8 _S=12_T=14
_U=16 V=10 W=22 X=25 Y=24 Z=23
TABELLA [ C ] (conversione del carattere di controllo)
_0=A_ 1=B _2=C_ 3=D _4=E_ 5=F_ 6=G _7=H _8=I_ 9=J
_10=K 11=L 12=M 13=N 14=O 15=P 16=Q 17=R 18=S 19=T
_20=U 21=V 22=W 23=X 24=Y 25=Z
![]()
Grazie, ma sul calcolo non ho problemi, semmai mi interessava verificarne la correttezza.
Ho risolto il problema con questo
http://forum.html.it/forum/showthrea...codice+fiscale