Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2012, 03:10
htmorales
 
Fecha de Ingreso: enero-2012
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
C Sharp Generador de CURP validado Parte 1

Funciona con C Sharp 2010.

Consideraciones:
-Esta clase genera 16 de los 18 dígitos del CURP de una persona.
(Los caracteres 17 y 18 corresponden al Diferenciador de Homonimia y al Dígito Verificador respectivamente, y solamente podran ser asignados por la Secretaría de Gobernación a través de sus bases de datos, les recomiendo no perder tiempo en saber como generarlos, puesto que no son bases de datos de consulta libre.)
-Está validada según el documento "INSTRUCTIVO NORMATIVO PARA LA ASIGNACIÓN DE LA CLAVE ÚNICA DEREGISTRO DE POBLACIÓN" emitido por la SEGOB y que podrán consultar en la siguiente dirección:
[URL="http://www.gobernacion.gob.mx/work/models/SEGOB/Resource/231/1/images/InstructivoParaLaCurp_v2008.pdf"]http://www.gobernacion.gob.mx/work/models/SEGOB/Resource/231/1/images/InstructivoParaLaCurp_v2008.pdf[/URL]

Como usarlo:
1. Primero genera una clase y ponle por nombre "CURP.h"
2. Copia y pega todo lo que está dentro de los corchetes de "class CURP"
(El codigo de la clase "CURP.h" está en otro tema que llamé "C Sharp Generador de CURP validado Parte 2")

3. En el Form de tu programa, coloca un control Button y un TextBox, en mi caso yo los llame btnGenCURP y tbxCURP respectivamente

4. En el Evento CLICK de tu botón prueba colocando el codigo que te muestro y verifica que genere el siguiente resultado:

MAML801012MSRRRP (los datos que puse para obtener este resultado son inventados)

Código:
private void btnGenCURP_Click(object sender, EventArgs e)
        {
            CURP Calcula = new CURP();
            tbxCURP.Text = Calcula.GeneraCURP("MARÍA JOSÉ", "MARTÍNEZ", "LÓPEZ", "12/10/1980", false, "SONORA");
        }
5. Podrás sustituir los datos que yo puse por controles que tú designes para ingresar información.

6. La función "GeneraCURP" solicitará como parámetros lo siguiente:
- Nombre: Podrá ser en mayúsculas, minúsculas o contener acentos, tu ponlo tal y como se escribe, la función se encarga de validarlo y adecuarlo.
- 1er. Apellido: Podrá ser en mayúsculas, minúsculas o contener acentos, tu ponlo tal y como se escribe, la función se encarga de validarlo y adecuarlo.
- 2do. APellido: Podrá ser en mayúsculas, minúsculas o contener acentos, tu ponlo tal y como se escribe, la función se encarga de validarlo y adecuarlo. (hay personas que solo tienen un apellido, la función esta preparada para ello, si no tiene algún apellido, envíale una cadena vacía ("")). Las mujeres deberán usar su apellido de soltera.
- Fecha de Nacimiento: Deberá tener formato dd/mm/aaaa. (ejemplo: 21/12/2000), la función revisa si la fecha proporcionada es válida.
- Sexo: Asignale "true" para Hombre y "false" para Mujer. (Revisa el ejemplo de arriba)
- Estado: Podrás mandar el nombre del estado o su número correspondiente. Podrá ser en mayúsculas, minúsculas o contener acentos, la función se encarga de validarlo y adecuarlo. (Para referencia localiza en el archivo de clase "CURP.h" la función llamada "public string SiglasEstado(string Estado)", alli podrás ver como nombrar a los estados)

7. Si por alguna razón enviaras mal algún parámetro, el CURP generado por la función contendrá en una o varias posiciones el simbolo "#".

Las posiciones corresponden de izquierda a derecha a:
1. 1er. Apellido-Letra Inicial.
2. 1er. Apellido-Primera Vocal Interna.
3. 2do. Apellido-Letra Inicial.
4. Nombre-Letra Inicial.
5. Año-Dígito más representativo.
6. Año-Dígito menos representativo.
7. Mes-Dígito más representativo.
8. Mes-Dígito menos representativo.
9. Día-Dígito más representativo.
10. Día-Dígito menos representativo.
11. Sexo-H ó M.
12. Siglas Estado Nacimiento-Según catálogo.
13. Siglas Estado Nacimiento-Según catálogo.
14. 1er. Apellido-Primera consonante interna.
15. 2do. Apellido-Primera consonante interna.
16. Nombre-Primera consonante interna.
17. Diferenciador de Homonimia asignado por SEGOB. (no se genera aquí)
18. Dígito verificador generado x algoritmo por SEGOB. (no se genera aquí)

Espero les sirva tanto como a mí.
Si notas alguna falla coméntamela porfavor.
Saludos Chavos....
Atte. Sabueso.