![]() |
Verificar CIF/NIF con c++ Builder
Saludos a todos.
PIDO PERDON...... POR NO HABER VERIFICADO BIEN EL PROGRAMA. DESLICÉ UN ERROR QUE CORRIJO SEGUIDAMENTE Estoy desarrollando una aplicación de compras-ventas-stocks-enlace contable con base de datos MSSQL. Uno de los temas es la comprobación del CIF/NIF. He encontrado bastantes cosas muy útiles explicando el algoritmo y el código fuente en Delphi. He hecho un programa de prueba con un formulario, un botón y un control TEdit. Se introduce un CIF/NIF, se pulsa el botón. Si hay error da un mensaje indicando el valor que debiera tener el dígito o letra de control, devuelve un valor false y se limpia el texto. Si todo va bien no hay mensaje, devuelve true y limpia el texto. Tengo alguna otra cosa de consolidación de balances, cálculo de participaciones, cruzadas o no..... Por si es de interés, allá va el código- //------------------------------------------------ En el fichero de cabecera (fichero Unit1.h) he declarado las funciones: Código:
__published:Código:
#include <vcl.h>/* //ver explicación en http://es.geocities.com/softcv/codigo/cif.html Gracias, muy bien!!!!! El CIF (Código de Identificación Fiscal) es un elemento de identificación administrativa para organizaciones y consta de 9 dígitos: _ _ _ _ _ _ _ _ _ |_| |_|_|_|_|_|_|_| |_| ^ ^ ^ ^ | |_ Números _| | | | | Dígito de control, un número ó letra: | {Aó1,Bó2,Có3,Dó4,Eó5,Fó6,Gó7,Hó8,Ió9,Jó0} | Letra de tipo de Organización, una de las siguientes: {A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S} El primer dígito es una letra que indica el tipo de la organización y puede ser una de los siguientes: A - Sociedad Anónima. B - Sociedad de responsabilidad limitada. C - Sociedad colectiva. D - Sociedad comanditaria. E - Comunidad de bienes. F - Sociedad cooperativa. G - Asociación. H - Comunidad de propietarios. K - Formato antiguo. L - Formato antiguo. M - Formato antiguo. N - Formato antiguo. P - Corporación local. Q - Organismo autónomo S - Organo de la administración. Los siete dígitos siguientes son números y el último es el dígito de control que puede ser un número ó una letra. Las operaciones para calcular el dígito de control se realizan sobre los siete dígitos centrales y son las siguientes: Sumar los dígitos de la posiciones pares. Suma = A Para cada uno de los dígitos de la posiciones impares, multiplicarlo por 2 y sumar los dígitos del resultado. Ej.: ( 8 * 2 = 16 --> 1 + 6 = 7 ). Acumular el resultado. Suma = B. Sumar A + B = C Tomar sólo el dígito de las unidades de C y restárselo a 10. Esta resta nos da D. A partir de D ya se obtiene el dígito de control. Si ha de ser numérico es directamente D y si se trata de una letra se corresponde con la relación: A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 0 Ejemplo para el C.I.F. : A58818501 Utilizamos los siete dígitos centrales = 5881850 Sumamos los dígitos pares: A = 8 + 1 + 5 = 14 Posiciones impares: 5 * 2 = 10 -> 1 + 0 = 1 8 * 2 = 16 -> 1 + 6 = 7 8 * 2 = 16 -> 1 + 6 = 7 0 * 2 = 0 -> = 0 Sumamos los resultados: B = 1 + 7 + 7 + 0 = 15 Suma parcial: C = A + B = 14 + 15 = 29 El dígito de las unidades de C es 9. Se lo restamos a 10 y nos da: D = 10 - 9 = 1 Si el dígito de control ha de ser un número es 1 y si ha de ser una letra es la "A" */ |
Cita:
|
Bienvenido al club Cecilioxx !!!
Solamente dos consejos, cuando insertes código utiliza las etiquetas [code]Aquí tu código[/code] para que quede mejor colocado. El otro otro es, que como tu código esta bastante bien y puede resultar de utilidad a otros, podrías colocarlo en la sección de trucos. |
| La franja horaria es GMT +2. Ahora son las 06:03:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi