Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 30-04-2010
Mystery Mystery is offline
Miembro
 
Registrado: jul 2007
Ubicación: Santiago de Cuba
Posts: 69
Poder: 17
Mystery Va por buen camino
Smile

Hola Ledian_Fdez bueno ahora re pongo tu misma funcion un poco modificada...
primero el CI aparte de la fecha de nacimiento te brinda el sexo pues el penultimo numero del CI si es par es hombre y si es impar bueno tu sabes...
por ejemplo te pongo un grupo de funciones y luego la tuya... OK...
esta funcion es del truco 389 de trucomania
Código Delphi [-]
function DiasMes(fecha: TDateTime): integer;
var
   PrimerDiaMes, PrimerDiaMesSiguiente : TDateTime;
   anyo, mes, dia: Word;
begin
   DecodeDate( fecha, anyo, mes, dia );
   primerDiaMes := EncodeDate(anyo, mes, 1);
   primerDiaMesSiguiente := IncMonth(primerDiaMes, 1);
   result := Round(primerDiaMesSiguiente - primerDiaMes);
end;

esta me brinda el sexo.
Código Delphi [-]
function sexo(a:integer):boolean;
begin
  Result:=False;
  if (a mod 2)=0 then
    result:=True;
end;
y esta es la ultima... te especifico que a esta ultima le pasas el numero de CI completo no solo la fecha sino completo para que te devuelva el sexo en una variable global OK...
Código Delphi [-]
Function ValidaCI(CI : String) : Boolean;
var
  dia, mes, anio:Word;
  sex:Integer;
  fecha : TDateTime;
begin
  result:=True;
  if Length(CI)<>11 then
  begin
    Result := False;
    Application.MessageBox('No. Carnet de Identidad incompleto.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
  end;
  anio:=StrToInt(Copy(CI,0,2));
  mes:=StrToInt(Copy(CI,3,2));
  dia:=StrToInt(Copy(CI,5,2));
  sex:=StrToInt(CI[Length(CI)-1]);
  try
    fecha:=EncodeDate(anio, mes, dia);
  except
  end;
  if DiasMes(fecha)then
  begin
    Application.MessageBox('Error en la cantidad de dias.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
    result:=False;
    Exit;
  end;
  if not IsValidDate(anio, mes, dia) then
  begin
    Application.MessageBox('Error en la cantidad de dias.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
    Result:=False;
    exit;
  end;
  if sexo(sex)then
    ShowMessage('Es macho')
  else
    ShowMessage('Es jebita');
end;


bueno a lo mejor se puede optimizar un poco mas pero bueno eso es todo... espero te sirva... OK chaooo

sin mas
Mystery

PD: todo esto es con un form un boton y un Edit, en el onclick llamas a la funcion pasandole el CI OK chaooo
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
Que hace esta función en VB? mqm Varios 1 15-10-2007 20:30:15
Una funcion que me diga si un programa esta abierto jorgegetafe Varios 14 08-10-2007 22:49:01
copiar fichero mas de 2Gb con esta funcion aram2r Varios 7 08-02-2006 17:28:22
¿Es valida utilizar esta función? Nelly Varios 5 18-01-2006 17:44:36
Sintaxis de esta Función cmgenny Varios 5 11-05-2003 06:43:01


La franja horaria es GMT +2. Ahora son las 04:45:27.


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