Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [codice fiscale] verifica

    Function ControCodice(TxtCodFis)
    dim TempNum, i, AppoNum
    'Controllo caratteri pari
    TempNum = 0
    i = 1
    Do
    ' POSIZIONI DISPARI
    AppoNum = InStr("B1A0K.P.L.C2Q.D3R.E4V.O.S.F5T.G6U.H7M.I8N.J 9W.Z.Y.X.", Mid(TxtCodFis, i, 1))
    TempNum = TempNum + Int((AppoNum - 1) / 2)
    i = i + 1
    If i > 15 Then Exit Do
    ' POSIZIONI PARI
    AppoNum = InStr("A0B1C2D3E4F5G6H7I8J9K.L.M.N.O.P.Q.R.S.T.U.V .W.X.Y.Z.", Mid(TxtCodFis, i, 1))
    TempNum = TempNum + Int((AppoNum - 1) / 2)
    i = i + 1
    Loop
    ControCodice = Chr((TempNum Mod 26) + 65)
    End Function

    Ho usato questa funzione, ma sbaglia....

    if right(CodFiscale,1)) <> ControCodice(left(CodFiscale,15)) then errore = "MSG ERRORE"

    provate........ e mi dite qualcosina??

    grazie,
    Giacomo

  2. #2
    io uso questo:

    codice:
    <%
    	FUNCTION CF_caratteri(cod_f)
    		Dim carattere
    		CF_caratteri = False
    		For carattere = 1 to Len(cod_f)
    			If NOT IsNumeric( Mid(cod_f, carattere , 1) ) AND (Asc( Mid(cod_f, carattere , 1) ) < 65 OR Asc( Mid(cod_f, carattere , 1) ) > 90) Then
    				CF_caratteri = True
    			End If
    		Next
    	END FUNCTION
    	
    
    
    	FUNCTION Ctrl_codicefiscale(cf)
    	CodiceFiscale = Trim(UCASE(cf))
    
    	If CF_caratteri(CodiceFiscale) Then
    		Ctrl_codicefiscale = False
    	Else		
    		Dim Lettere(35,2) 
    		
    		Dim ConfrontoCarattereControllo(25) 
    		
    		Dim I 
    		Dim J 
    		
    		Dim Carattere 
    		Dim ValorePari 
    		Dim ValoreDispari 
    		Dim SommaCaratteri 
    		Dim PariDispari 
    		Dim Risultato 
    		
    		Dim CarattereControllo 
    		Dim Temp 
    		Dim Test 
    		
    		Lettere(0,0) = "A" 
    		Lettere(0,1) = "0" 
    		Lettere(0,2) = "1" 
    		
    		Lettere(1,0) = "B" 
    		Lettere(1,1) = "1" 
    		Lettere(1,2) = "0" 
    		
    		Lettere(2,0) = "C" 
    		Lettere(2,1) = "2" 
    		Lettere(2,2) = "5" 
    		
    		Lettere(3,0) = "D" 
    		Lettere(3,1) = "3" 
    		Lettere(3,2) = "7" 
    		
    		Lettere(4,0) = "E" 
    		Lettere(4,1) = "4" 
    		Lettere(4,2) = "9" 
    		
    		Lettere(5,0) = "F" 
    		Lettere(5,1) = "5" 
    		Lettere(5,2) = "13" 
    		
    		Lettere(6,0) = "G" 
    		Lettere(6,1) = "6" 
    		Lettere(6,2) = "15" 
    		
    		Lettere(7,0) = "H" 
    		Lettere(7,1) = "7" 
    		Lettere(7,2) = "17" 
    		
    		Lettere(8,0) = "I" 
    		Lettere(8,1) = "8" 
    		Lettere(8,2) = "19" 
    		
    		Lettere(9,0) = "J" 
    		Lettere(9,1) = "9" 
    		Lettere(9,2) = "21" 
    		
    		Lettere(10,0) = "K" 
    		Lettere(10,1) = "10" 
    		Lettere(10,2) = "2" 
    		
    		Lettere(11,0) = "L" 
    		Lettere(11,1) = "11" 
    		Lettere(11,2) = "4" 
    		
    		Lettere(12,0) = "M" 
    		Lettere(12,1) = "12" 
    		Lettere(12,2) = "18" 
    		
    		Lettere(13,0) = "N" 
    		Lettere(13,1) = "13" 
    		Lettere(13,2) = "20" 
    		
    		Lettere(14,0) = "O" 
    		Lettere(14,1) = "14" 
    		Lettere(14,2) = "11" 
    		
    		Lettere(15,0) = "P" 
    		Lettere(15,1) = "15" 
    		Lettere(15,2) = "3" 
    		
    		Lettere(16,0) = "Q" 
    		Lettere(16,1) = "16" 
    		Lettere(16,2) = "6" 
    		
    		Lettere(17,0) = "R" 
    		Lettere(17,1) = "17" 
    		Lettere(17,2) = "8" 
    		
    		Lettere(18,0) = "S" 
    		Lettere(18,1) = "18" 
    		Lettere(18,2) = "12" 
    		
    		Lettere(19,0) = "T" 
    		Lettere(19,1) = "19" 
    		Lettere(19,2) = "14" 
    		
    		Lettere(20,0) = "U" 
    		Lettere(20,1) = "20" 
    		Lettere(20,2) = "16" 
    		
    		Lettere(21,0) = "V" 
    		Lettere(21,1) = "21" 
    		Lettere(21,2) = "10" 
    		
    		Lettere(22,0) = "W" 
    		Lettere(22,1) = "22" 
    		Lettere(22,2) = "22" 
    		
    		Lettere(23,0) = "X" 
    		Lettere(23,1) = "23" 
    		Lettere(23,2) = "25" 
    		
    		Lettere(24,0) = "Y" 
    		Lettere(24,1) = "24" 
    		Lettere(24,2) = "24" 
    		
    		Lettere(25,0) = "Z" 
    		Lettere(25,1) = "25" 
    		Lettere(25,2) = "23" 
    		
    		Lettere(26,0) = "0" 
    		Lettere(26,1) = "0" 
    		Lettere(26,2) = "1" 
    		
    		Lettere(27,0) = "1" 
    		Lettere(27,1) = "1" 
    		Lettere(27,2) = "0" 
    		
    		Lettere(28,0) = "2" 
    		Lettere(28,1) = "2" 
    		Lettere(28,2) = "5" 
    		
    		Lettere(29,0) = "3" 
    		Lettere(29,1) = "3" 
    		Lettere(29,2) = "7" 
    		
    		Lettere(30,0) = "4" 
    		Lettere(30,1) = "4" 
    		Lettere(30,2) = "9" 
    		
    		Lettere(31,0) = "5" 
    		Lettere(31,1) = "5" 
    		Lettere(31,2) = "13" 
    		
    		Lettere(32,0) = "6" 
    		Lettere(32,1) = "6" 
    		Lettere(32,2) = "15" 
    		
    		Lettere(33,0) = "7" 
    		Lettere(33,1) = "7" 
    		Lettere(33,2) = "17" 
    		
    		Lettere(34,0) = "8" 
    		Lettere(34,1) = "8" 
    		Lettere(34,2) = "19" 
    		
    		Lettere(35,0) = "9" 
    		Lettere(35,1) = "9" 
    		Lettere(35,2) = "21" 
    		
    		For I = 0 To 25 
    		
    		     ConfrontoCarattereControllo(I) = Chr(65 + I) 'creo in ConfrontoCarattereControllo tutte le lettere maiuscole dalla A (chr(65)) alla Z(chr(90)) 
    		
    		Next 
    		
    		Carattere=0 
    		ValorePari=1 'indice della seconda colonna della matrice Lettere 
    		ValoreDispari=2 'indice della terza colonna della matrice Lettere 
    		SommaCaratteri=0 
    		
    		CarattereControllo=Right(CodiceFiscale,1) 
    		
    		for I=1 to len(CodiceFiscale)-1 
    		   if (I mod 2)=0 then 
    		     PariDispari="P" 
    		   else 
    		     PariDispari="D" 
    		   end if 
    		   
    		   Temp =mid(CodiceFiscale,I,1) 
    		   J=0 
    		   do 
    		     Test=Lettere(J,Carattere) 
    		     J=J+1 
    		   loop until Temp=Test 
    		   J=J-1 
    		   
    		   if PariDispari="P" then 
    		     SommaCaratteri=SommaCaratteri + CInt(Lettere(J,ValorePari)) 
    		   else 
    		     SommaCaratteri=SommaCaratteri + CInt(Lettere(J,ValoreDispari)) 
    		   end if 
    		Next 
    		
    		Risultato=SommaCaratteri mod 26 
    		
    		Risultato=ConfrontoCarattereControllo(Risultato) 
    		
    		if Risultato<>CarattereControllo then 
    		   Ctrl_codicefiscale = False
    		else 
    		   Ctrl_codicefiscale = True
    		end if 
    	End If
    	END FUNCTION
    %>

  3. #3
    funziona bene?

    lo uso anch'io....

    mi spieghi come si usa?
    cioè
    richiami prima la funzione cf_caratteri se vero
    richiami ctrl_codicefiscale per verificare se è giusto

    giusto?

  4. #4

    grazie...........

    studiato...

    provato...

    funzionaaaaaaaaaaaaaa



    grazie,
    Giacomo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.