Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Cálculo / Validación del IBAN

Dado que a partir del 1 de febrero de 2014 se cambia el formato para efectuar pagos por vía telemática y hay que aplicar la normativa SEPA; la AEB ha publicado la nueva normativa para dichos soportes informáticos y se puede consultar el formato de los nuevos CSB19 (CSB 19.14) en Adeudos Directos SEPA en fichero electrónico – Esquema Básico.

El protocolo de validación lo encontré en Código Internacional de Cuenta Bancaria (IBAN) y me he hecho la rutina. Este es el código:
Código:
AnsiString CalIban(AnsiString Cuenta)
{
     AnsiString cAux;

     Cuenta = Cuenta + "142800";
     cAux   = FormatFloat("0", StrToInt(Cuenta.SubString(1, 9)) % 97);
     Cuenta = Cuenta.SubString(10, Cuenta.Length());
     while (!Cuenta.IsEmpty())
     {
          if (StrToInt(cAux) < 10)
          {
               cAux   = cAux + Cuenta.SubString(1, 8);
               Cuenta = Cuenta.SubString(9, Cuenta.Length());
          }
          else
          {
               cAux   = cAux + Cuenta.SubString(1, 7);
               Cuenta = Cuenta.SubString(8, Cuenta.Length());
          }
          cAux = FormatFloat("0", StrToInt(cAux) % 97);
     }
     return "ES" + FormatFloat("00", 98 - StrToInt(cAux));
}
//---------------------------------------------------------------------------
El 142800 que aparece en las primeras líneas es el resultado de aplicar la tabla de conversión a las letras ES y añadir un 00 necesario para que tenga la longitud adecuada, de acuerdo con la norma.

Devuelve las cuatro primeras posiciones del IBAN, que en el caso de España son ESxx siendo xx un número entre 1 y 98. El IBAN completo en el caso de España tiene 24 posiciones: las calculadas con esta rutina (ESxx) más las 20 del CCC, que mantiene su fórmula de cálculo (Letra DNI,Nº AÑOS, DIGITO CONTROL CUENTA , D.CONTROL EAN 13)

Si hubiera que calcular el IBAN para otros paises hay que tener en cuenta:
1. El código nacional según la norma ISO 3166-1 que podemos encontrar en ISO 3166-1 decoding table.
2. Dado que hay paises que en las cuentas bancarias admiten letras (caso de Francia) hay que usar la tabla de conversión que aparece en Código Internacional de Cuenta Bancaria (IBAN)
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cálculo de los dígitos IBAN Troffed Trucos 9 26-07-2020 19:08:27
validación Nelly Varios 8 12-10-2005 20:32:33
validacion halifax Tablas planas 7 07-02-2005 00:25:53
Validacion Carlex Conexión con bases de datos 1 09-09-2004 00:53:41
Como calcular codigo IBAN cinecito Varios 2 11-05-2004 19:49:44


La franja horaria es GMT +2. Ahora son las 00:56:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi