soft·in·spain - article - Delphi - Cálculo digitos control IBAN

Cálculo digitos control IBAN

IBAN es el acrónimo de International Bank Account Number, es una norma por la cual se identifica una cuenta bancaria de cualquier pais (aunque de momento sólo se utiliza en Europa). Más información en la wikipedia

Hoy he tenido que modificar una aplicación que prepara un fichero XML para enviar a un organismo público, en ese fichero había que indicar el código IBAN de unas cuentas bancarias. Resulta que donde esta aplicación tienen como 50 cuentas bancarias y además hay que indicar cuentas de terceros. Tenemos los digitos de entidad, oficina y cuenta de cada una, pero no el IBAN. He buscado información y he visto que como se calculaba, me he puesto manos a la obra y este es el resultado:

  1. { ——
  2. Devuelve el código IBAN que corresponde con la cuenta y el país que se le pasa
  3. Ver http://www.desarrolloweb.com/articulos/2484.php y http://www.sima.cat/chkiban.php
  4. —— }
  5. function ControlIBAN(const Cuenta, Pais: string): string;
  6. var
  7. i, j: integer;
  8. m: int64;
  9. l: TInteger;
  10. t: string;
  11. s: string;
  12. function LetterToDigit(const C: Char): string;
  13. const
  14. a: char = ‘A’;
  15. var
  16. d: byte;
  17. begin
  18. result := C;
  19. if C in [‘A’..‘Z’] then
  20. begin
  21. d := (byte(C)byte(a)) + 10;
  22. result := IntToStr(d);
  23. end;
  24. end;
  25. begin
  26. l := TInteger.Create;
  27. try
  28. t := Cuenta + Pais + ‘00’;
  29. s := ‘’;
  30. j := Length(t);
  31. for i := 1 to j do
  32. s := s + LetterToDigit(t[i]);
  33. l.Assign(s);
  34. l.Modulo(97);
  35. l.ConvertToInt64(m);
  36. i := 98 – m;
  37. result := IntToStr(i);
  38. if i < 10 then
  39. result := ‘0’ + result;
  40. finally
  41. l.Free;
  42. end;
  43. end;
  44. function FormateaIBAN(const Cuenta, Pais: string): string;
  45. begin
  46. result := Pais + ControlIBAN(Cuenta, Pais) + Cuenta;
  47. end;

Requiere la librería DFF

Nuevo comentario

Un nombre y dirección son necesarios. Textile puede usarse para formatear el comentario. Las direcciones se codifican y no se muestran, si introduces una URL de web se mostrará siempre en lugar del correo.
Por favor, se respetuoso y utiliza un lenguaje correcto.






 Ayuda Textile