Newsgroup: it.comp.www.asp
Titolo: Codice Fiscale in ASP

ciao NG
Dove posso trovare il codice asp per il calcolo del
codice fiscale ?
Da premettere che ho l'archivio di tutti i comuni d'italia
in formato access97.
grazie1000
Maurizio

 ha scritto nel messaggio
news:3aa2...@news.edisons.it...


 Ciauz
te ne sarei grato, grazie
Maurizio

A questa pagina devi passare i parametri: nome, cognome, data di nacita
(giorno, mese, anno)
sesso, luogo di nascita, provincia .
Ps.
E' stata la mia prima pagina asp, (1,5 anni fa), quindi abbiate pazzienza.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Calcolo Codice Fiscale</title>
</head>
<%
 nome = ucase(Request.Form("NOME"))
 cognome = ucase(Request.Form("COGNOME"))
 gg = Request.Form("GG")
 mm = Request.Form("MM")
 aa = Request.Form("AA")
 comune = ucase(Request.Form("COMUNE"))
 sesso =  ucase(Request.Form("SESSO"))
 provincia = ucase(Request.Form("PROVINCIA"))
 set comuni = CreateObject("ADODB.Recordset")
 cdfcom = ""
 comuni.Open "SELECT * FROM Comuni WHERE DesComune='" + comune + "'",
"DSN=NettoLordo"
 if Err.Description <> "" Then
 Response.Write  "<B>Errore: " + Err.Description + "</B>"
 else
 if comuni.EOF And comuni.BOF then
  Response.Write  "<B>Comune non trovato</B>"
 else
   comuni.MoveFirst
       cdfcom = CStr(comuni("CodFiscale"))
 end if
 comuni.Close
 end if
 if cdfcom <> "" then
    if len(aa) > 2 then
     cdfaa = mid(aa,3)
  else
     cdfaa = aa
  end if
  if sesso = "F" then
  cdfgg = CStr(gg + 40)
  else
  cdfgg = CStr(gg)
  end if
   i = 0
  voca = ""
  cons = ""
    do until i >= len(nome)
  i = i +1
  c = mid(nome,i,1)
       if c="A" or c="E" or c="I" or c="O" or c="U" or c="Y" or c="J" then
   voca = voca + c
  else
   if c<>" " then
     cons = cons + c
   end if
  end if
  loop
     if len(cons) = 3 then
       cdfnome = left(cons,3)
   else
    if len(cons) > 3 then
         cdfnome = left(cons,1) + mid(cons,3,1)
    if len(cons) > 4 then
     cdfnome = cdfnome + mid(cons,5,1)
    else
     cdfnome = cdfnome + mid(cons,4,1)
    end if
    else
       if len(cons) = 2 then
      cdfnome = cons + left(voca,1)
      else
       cdfnome = cons + left(voca,2)
      end if
    end if
   end if
   if len(cdfnome)=2 then
   cdfnome = cdfnome + "X"
   end if
   i = 0
  voca = ""
  cons = ""
    do until i >= len(cognome)
  i = i +1
  c = mid(cognome,i,1)
       if c="A" or c="E" or c="I" or c="O" or c="U"  then
   voca = voca + c
  else
   if c<>" " then
     cons = cons + c
   end if
  end if
  loop
     if len(cons) >= 3 then
       cdfcognome = left(cons,3)
   else
  if len(cons) = 2 then
   cdfcognome = cons + left(voca,1)
  else
   cdfcognome = cons + left(voca,2)
  end if
   end if
   if len(cdfcognome)=2 then
   cdfcognome = cdfcognome + "X"
   end if
   mesi = "ABCDEHLMPRST"
   cdfmm = mid(mesi,mm,1)
    cdf = cdfcognome + cdfnome + cdfaa + cdfmm + cdfgg + cdfcom
      pari = "0001020304050607080910111213141516171819202122232425"
   dispari = "0100050709131517192102041820110306081214161022252423"
   i = 0
   cv = 0
   do until i = 15
  i = i+ 1
  c = mid(cdf,i,1)
  if asc(c)< 64 then
   v = (asc(c) - 47) * 2
   else
   v = (asc(c) - 64) * 2
  end if
  v = v - 1
  if  ((i/2) - cint(i/2)) = 0 then
   cv = cv + cint(mid(pari,v,2))
  else
   cv = cv + cint(mid(dispari,v,2))
  end if
   loop
   cv = cv - (cint( (cv/26) -0.49 )*26)
     cdfctr =  chr( Mid(pari, (cv * 2)+1 ,2 ) + 65)
     cdf = cdf + cdfctr
 end if
%>
<body topmargin="0" leftmargin="0">
<table border="0" cellspacing="0" cellpadding="0"
background="../images/cdf.jpg"
width="343" bgcolor="#FFFFFF">
  <tr>
    <td height="100"></td>
  </tr>
  <tr>
    <td height="20" width="70"></td>
    <td height="20"><strong><small><font face="Verdana"><%Response.Write
mid(cdf,1,3) + "    " + mid(cdf,4,3) + "    " + mid(cdf,7,5) + "    " +
mid(cdf,12,5) %></font></small></strong></td>
  </tr>
  <tr>
    <td height="20" width="70"></td>
    <td height="20"><small><font face="Verdana"><%Response.Write cognome
%></font></small></td>
  </tr>
  <tr>
    <td height="20" width="70"></td>
    <td height="20"><small><font face="Verdana"><%Response.Write nome %>
</font></small></td>
    <td height="20" width="70"><p align="right"><small><font
face="Verdana"><%Response.Write sesso %></font></small></td>
  </tr>
  <tr>
    <td height="20" width="70"></td>
    <td height="20"><small><font face="Verdana"><%Response.Write comune
%></font></small></td>
  </tr>
  <tr>
    <td height="20" width="70"></td>
    <td height="20"><small><font face="Verdana"><%Response.Write provincia
%></font></small></td>
    <td height="20" width="100"><small><font face="Verdana"><%Response.Write
cstr(gg) + "/" + cstr(mm) + "/" + cstr(aa) %></font></small></td>
  </tr>
  <tr>
    <td height="20"></td>
  </tr>
</table>
</body>
</html>