Oggi cercando l'algoritmo di controllo dell'IBAN su google ho trovato questo post ( http://meow.altervista.org/blog/come-controllare-la-validita-del-codice-iban-in-java/ ) con l'algoritmo e un chiaro esempio in Java. Ho convertito la routing in C#, non che mancassero gli esempi direttamente in questo linguaggio, ma che diamine.. ecco la funzione. Bisogna creare un riferimento a System.Numerics nel progetto che usa la funzione. .NET >= 4, per via di BigInteger
private bool ibanvalido(string iban)
{
iban = iban.ToUpper();
if (iban.Length < 27) { return false; }
int valoreperiban = 0;
StringBuilder builder = new StringBuilder();
string ibanscambiato = iban.Substring(4, iban.Length - 4) + iban.Substring(0, 4);
for (int i = 0; i < ibanscambiato.Length; i++)
{
char ch = ibanscambiato[i];
if (ch >= 'A' && ch <= 'Z') { valoreperiban = ch - 55; builder.Append(valoreperiban.ToString()); } else { builder.Append(ch); }
}
System.Numerics.BigInteger ibanConvertito = System.Numerics.BigInteger.Parse(builder.ToString());
System.Numerics.BigInteger resto = System.Numerics.BigInteger.Remainder(ibanConvertito, 97);
if (resto.Equals(1)) { return true; } else { return false; }
}
Thursday, 23 October 2014
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment