FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Calcular un digito de chequeo
Hola a todos, estoy haciendo una aplicación para recaudo en bancos, el banco me exige una rutina para calcular el digito de chequeo correspondiente a cada cliente, pero no tengo ni idea de como implementarlo a delphi, trabajo con delphi 5 y tablas paradox, alguien me puede ayudar?
la rutina es la siguiente: Codigo del cliente: 0156674 (maximo de 7 digitos) 1 5 6 6 7 4 x2 x1 x2 x1 x2 x1 2 5 12 6 14 4 Se suman los resultados así: 2 + 5 + (1+2) + 6 + (1+4) + 4 = 25, este resultado siempre debe restarse de 30 y el resultado es el digito de chequeo que corresponde a este codigo de cliente. Como ven los resultados de 2 digitos como el 12 se tienen que sumar entre si es decir: 12 se suma (1+2). Bueno, el algoritmo lo entiendo muy bien porque es fácil, lo que no sé es como aplicar eso en delphi a partir del código del cliente que se encuentra en un dbedit y calcular el digito de chequeo de este cliente y poner el resultado en otro dbedit. Agradezco enormemente a quien me pueda ayudar con este caso porque de verdad es muy importante para mí poder resolver esto. Gracias a todos los que me den una pista de como hacerlo. |
#2
|
||||
|
||||
Interesante.
Una pregunta, si en lugar de: Cita:
¿La primera operación sería: (2 X 2) + (1 X 1) + (5 X 2) + (6 X 1) + (6 X 2) + (7 X 1) + (4 X2) o bien: (2 X 1) + (1 X 2) + (5 X 1) + (6 X 2) + (6 X 1) + (7 X 2) + (4 X1) ? Otra pregunta: Entiendo que los ceros se descartan, pero al suprimir un cero intermedio, ¿con los dígitos restantes se mantiene la secuencia de factores 2-1-2-1...? ¿O podría llegar a quedar "2-1-2-2-1..."? Saludos. Al González. |
#3
|
||||
|
||||
podria ser algo asi (falta optimizar)
__________________
self.free; Última edición por droguerman fecha: 08-02-2009 a las 03:51:30. |
#4
|
|||
|
|||
re:Calcular un digito de chequeo
la operacion seria asi:
si el codigo del cliente fuera: 2156674 entonces: (2 X 2) + (1 X 1) + (5 X 2) + (6 X 1) + (6 X 2) + (7 X 1) + (4 X2) los ceros intermedios no se descartan, ellos se multiplican por su primo correspondiente, solo se descarta si el cero es al principio. |
#5
|
|||
|
|||
re: Calcular un digito de chequeo
Es decir, siempre la secuencia va a ser : 2 1 2 1 2 1 2 1
|
#6
|
|||
|
|||
re:Calcular un digito de chequeo
Exactamente lo que me piden en el banco es lo siguiente:
TAL CUAL: DEPOSITO NACIONAL CON REFERENCIA RUTINA MODULO 5 El código del cliente es un campo de 8 caracteres; el cálculo se hace tomando a partir del primer digito significativo (no cero) de izquierda a derecha y multiplicando sucesivamente por 2 y por 1, se suman luego los resultados de estas multiplicaciones y se aproxima a la centena más próxima por arriba o por abajo. Código de cliente 081802 8 1 8 0 2 X2 X1 X2 X1 X2 16 1 16 0 4 (1+6) + 1 + (1+6) + 0 + 4 = 19 Este valor se resta de 20 y el dígito es 1. Código de cliente 0156674 1 5 6 6 7 4 X2 X1 X2 X1 X2 X1 2 5 12 6 14 4 2 + 5 + (1+ 2) + 6 + (1+4) + 4 = 25 se resta de 30 o se le resta 20 el dígito es 5 Cuando la sumatoria de las multiplicaciones termina en 5 es indiferente restarlo la decena más próxima por arriba o restarle las más prósima por abajo el dígito será el mismo 5. Los documentos pueden contener como primer carácter una letra en cuyo caso se sonsiderara el primer dígito numérico a la iaquierda para efectuar las multiplicaciones respectivas. |
#7
|
|||
|
|||
Calcular un digito de chequeo
Exactamente eso es lo que debo aplicar en delphi, y no tengo idea de como hacerlo, alguna idea que me pueda ayudar??
|
#8
|
||||
|
||||
El código que te envie hace eso, la parte (1 + (i mod 2) ) realiza la multiplicación por 1 o por 2 según el cado, el error de la resta deberia ser algo como (falta optimizar otra vez).
saludos
__________________
self.free; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Calcular último dígito del IMEI | Emilio | PHP | 4 | 14-04-2008 12:15:56 |
Dígito Verhoeff | Antonio Rosas E | OOP | 1 | 05-10-2007 00:51:19 |
Comparar un number dígito a dígito | kuan-yiu | SQL | 2 | 25-06-2007 18:26:47 |
Modificar un str dígito a dígito | fortran | Varios | 11 | 22-12-2003 17:44:46 |
como calcular el digito de control d una cuenta bancaria | User_Baja_2 | Varios | 3 | 31-05-2003 16:35:16 |
|