LinuxLudus: calcolo IBAN

Giuseppe Marocchio lan@olografix.org
Mar 8 Gen 2008 13:50:00 CET


Il giorno mar, 08/01/2008 alle 13.33 +0100, franco.bender ha scritto:
> Illustrissimi, nonostante varie ricerche in google e soluzioni
> prospettate non sono riuscito a trovare una routine in excel , java,
> script, o prg che sia in grado di calcolare l'IBAN. Siccome alla fine
> e una stringa con due algoritmi nessuno di voi e' a conoscenza della
> soluzione. 

Prova questo... e' javascript + html

function maiu(elemento){
document.forms[0].elements[elemento].value=document.forms[0].elements[elemento].value.toUpperCase();
}



function contrcin()
{
cc=document.forms[0].elements[0].value+document.forms[0].elements[1].value+document.forms[0].elements[2].value;
aa="A0B1C2D3E4F5G6H7I8J9K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#-#.# #";
bb="B1A0K#P#L#C2Q#D3R#E4V#O#S#F5T#G6U#H7M#I8N#J9W#Z#Y#X# #-#.#";
dd=0;
iban2="";
tabella="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

for(var ii=1;ii<22;ii+=2)
{
dd=dd+Math.floor(aa.indexOf(cc.charAt(ii))/2);
}
for(var ii=0;ii<22;ii+=2)
{
dd=dd+Math.floor(bb.indexOf(cc.charAt(ii))/2);
}
dd=dd-(Math.floor(dd/26)*26);

cin = aa.charAt(dd*2);

cc1 = cin+cc+"IT"+"00";
for(var iban1=0;iban1<cc1.length;iban1++)
{
iban2+=tabella.indexOf(cc1.charAt(iban1));
}
divisore=97;
div1=""
for (var ciclo1 = 0; ciclo1 < iban2.length; ciclo1++)
                  {
div1=div1+iban2.charAt(ciclo1);
if (div1<divisore) continue;
else 
{
div1=div1%divisore;
}
}

iban2=98 - div1;
iban2="0"+iban2;
iban2=iban2.charAt(iban2.length-2)+iban2.charAt(iban2.length-1);
iban = "IT"+iban2+cin+cc;
alert("Il CIN calcolato e': "+cin+"\nLe coordinate IBAN sono: "+iban);}



function prova()
{
document.forms[0].elements[0].value=document.forms[0].elements[0].value.toUpperCase();
if (document.forms[0].elements[0].value.length!=5 )
{
alert("Attenzione il codice ABI deve essere di 5 caratteri" );
}
}
function prova1()
{
document.forms[0].elements[1].value=document.forms[0].elements[1].value.toUpperCase();
if (document.forms[0].elements[1].value.length!=5 )
{
alert("Attenzione il codice CAB deve essere di 5 caratteri" );
}
}
function prova2()
{
prova();
prova1();
document.forms[0].elements[2].value=document.forms[0].elements[2].value.toUpperCase();
lunghezza=document.forms[0].elements[2].value.length;
if (document.forms[0].elements[2].value.length<12 )
{
for(var i=1;i<(13-lunghezza);i++)
{
document.forms[0].elements[2].value="0"+document.forms[0].elements[2].value;
}
}

if (document.forms[0].elements[2].value.length!=12 )
{
alert("Attenzione il numero di C/C deve essere di 12 caratteri" );
}
contrcin();
}


</SCRIPT>

<FORM>

<STRONG>Calcolo del CIN e delle coordinate IBAN di un C/C bancario italiano</STRONG></P>
<TABLE border=0>
  <TBODY>
  <TR>
    <TD>Codice ABI</TD>

    <TD><INPUT name=J8 onchange=prova(); size=10></TD></TR>
  <TR>
    <TD>Codice CAB</TD>
<TD><INPUT name=J9 onchange=prova1(); size=10></TD></TR>

  <TR>
    <TD>Conto corrente </TD>
    <TD><INPUT name=K1 onchange=prova2();></TD></TR>
 
 </TBODY></TABLE>

<br>
<input type=reset value="Cancella">
<input type="button" value="Calcola CIN e IBAN" onClick="prova2()">
</form>



Maggiori informazioni sulla lista linuxludus