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
  #3  
Antiguo 15-10-2014
REVINFOR REVINFOR is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 19
Poder: 0
REVINFOR Va por buen camino
Gracias por la pronta respuesta...

Sere mas explicito, en realidad son dos procesos que se aplican:

1) registrar la huella a los usuarios para controlar la asistencia, este procedimiento se realiza SOLO UNA VEZ POR USUARIO para guardar el template de comparacion para realizar el registro de asistencia. Al momento de guardar los datos se pasa el array de bytes a una cadena que se guarda en la base. (El primer ejemplo del primer post).

2) Registro de asistencia, para que el usuario registre la asistencia, el lector de huella captura los datos en un array de bytes y se procede a comparar con las huellas que se tienen guardadas en formato de cadena, solo que para que se puedan comparar ambos datos, cada cadena la tengo que convertir en un array de bytes.

Ejemplo:

bAsistencia = array of bytes corresponde al usuario Perez

TUsuarios = Tabla con los 1420 usuarios

Código Delphi [-]
with TUsuarios do
begin
  encontrado := false;
  close;
  open;

  while not eof do
  begin
    if Comparar(bAsistencia, TUsuariosTemplate.asString) then
    begin
      showmessage('Encuentro exitoso');
      encontrado := true;
      break;
    end;      
    next;
  end;

  if not encontrado then
    showmessage('Error: Usuario no encontrado');
end;
Como pueden ver, la funcion Comparar es la que quiero optimizar, esta funcion iria mas o menos asi

Código Delphi [-]
function Comparar(bAsistencia, cadena: string):boolean;
var d,i:integer;
  a:array of byte;
begin
  result := false;
  // sacamos la longitud de la cadena dividido entre dos
  d := length(cadena) div 2;
  // asignamos el tamaño del array de bytes
  setlength(a,d);

  // llenamos el array con los datos de la cadena, haciendo la conversion de hex a decimal
  for i := 1 to d do
    a[i - 1] := strtoint('$' + cadena[2*i - 1] + cadena[2*i]);
  
  // la funcion compare es parte del SDK del lector de huella, que me pide trabajar con dos array de bytes
  result := compare(bAsistencia,a);
end;

Gracias por el apoyo.... revisare el codigo que acaban de publicar para ver como lo podemos optimizar el proceso...
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
Redondear numeros decimales a enteros.... uper Varios 6 26-07-2012 16:52:45
validar que las cajas de texto solo acepten valores enteros y decimales dimer18 OOP 11 12-12-2011 01:58:30
Formatear números enteros y decimales quade C++ Builder 10 13-10-2011 16:09:54
Grabar En SQL Campos Decimales, Solo me graba enteros? Con Codigo freddiaz07 SQL 13 21-09-2006 18:44:34
Grabar En SQL Campos Decimales, Solo me graba enteros? freddiaz07 SQL 2 07-09-2006 16:24:04


La franja horaria es GMT +2. Ahora son las 05:13:37.


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