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;
d := length(cadena) div 2;
setlength(a,d);
for i := 1 to d do
a[i - 1] := strtoint('$' + cadena[2*i - 1] + cadena[2*i]);
result := compare(bAsistencia,a);
end;
Gracias por el apoyo.... revisare el codigo que acaban de publicar para ver como lo podemos optimizar el proceso...