Hola REVINFOR.
Cita:
Empezado por REVINFOR
...
Luego, para controlar la asistencia del usuario, tengo que convertir esta cadena en el array de bytes que tenia al principio...
para ello, lo que hago es contar las posiciones de la cadena de 2 en 2, anteponiendo el caracter $ y usando la funcion strtoint.
...
|
A partir de aquí no me queda del todo claro la secuencia de acciones que sigues...
Sin embargo pareciera, que una vez obtenida la huella y pasada a cadena, te podrías ahorrar esa última conversión comparándola directamente con las almacenadas en la tabla.
A modo de ejemplo:
Código Delphi
[-]
function BytesToString(v: array of byte): string;
const
DIGHEX = '0123456789ABCDEF';
var
i: Integer;
begin
SetLength(Result, Length(v) shl 1);
for i := Low(v) to High(v) do
begin
Result[1+2*i]:= DIGHEX[(v[i] shr 4)+1];
Result[2+2*i]:= DIGHEX[(v[i] and 15)+1];
end;
end;
...
var
Huella: array of Byte;
...
begin
SetLength(Huella, N);
if CapturarHuella(Huella) then
with tuQuery do
begin
Close;
SQL.Clear;
SQL.Add('SELECT COUNT(*) AS ASISTENCIAS FROM TU_TABLA');
SQL.Add('WHERE SIGNATURE = :PSIGNAT');
SQL.Add('AND FECHA BETWEEN :DESDE AND :HASTA');
ParamByName('PSIGNAT').AsString:= BytesToString(Huella);
...
Open;
if not IsEmpty then
ShowMessage(Format('Asistencias: %d', [FieldByName('ASISTENCIAS').AsInteger]))
...
end;
...
Saludos