0

用于将 DigitaPersona 模板串行数据保存到 DBASE4 DBF 文件的 DELPHI 5 示例。

procedure TFormEnroll.DPFPEnrollmentControl1Enroll(Sender: TObject;
  lFingerMask: Integer; const pTemplate, pStatus: IDispatch);
var
  MMask : Integer;
  Template : IDispatch;
  MTempStr : OleVariant;

  lByteArray: Variant;
  lArrayPointer: Pointer;
  lStr: AnsiString;
  DPFPTemplate: TDPFPTemplate;
  aRawData : Variant;
begin
  aRawData := pTemplate;
  lStr := aRawData.Serialize;
  MMask := lFingerMask;
  if lStr = null then
    StatusBar.Panels.Items[0].Text := 'The fingerprint TEMPLATE is empty! + Mask=' + IntToStr(MMask)
  else
    StatusBar.Panels.Items[0].Text := 'The fingerprint TEMPLATE has something! + Mask=' + IntToStr(MMask);
  MMsg := lStr;
  MLen := Length(MMsg);
  EditSerialData.Text := MMsg;
  MemoSerialData.Lines.Text := MMsg;
  MemoSerialData2.Lines.Text := MMsg;
  EditLenSerialData.Text := IntToStr(MLen);
  EditFingerMask.Text := IntToStr(DPFPEnrollmentControl1.EnrolledFingersMask);
  //Update database - Take to separate save button
  DMForm.Finger.First;
  if DMForm.Finger.State in [dsEdit, dsInsert] then
    // do nothing
  else
    DMForm.Finger.Edit;
  DMForm.FingerUSERNAME.Value := 'Testing ';
  DMForm.Finger.Post;
  DMForm.Finger.Edit;
  DMForm.FingerUSERNAME.Value := 'Testing ' + IntToStr(DMForm.FingerFINGERID.Value);
  DMForm.FingerFINGERTEMP.Value := MMsg;
  DMForm.FingerEnrolledFingerMask.Value := IntToStr(DPFPEnrollmentControl1.EnrolledFingersMask);
  DMForm.FingerFingerSerialData.Value := MMsg;
  DMForm.Finger.Post;
end;

已保存模板的示例字符串 = "?b???????????????????????????????????????????????? ???????õ????????????????????????????????????+?????????[ ??????????????????V????????????????????????????????? ?????????????????????????????????9????????????o?????? ??????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ??????????????????????????????????????????????????? ???????????????j????????????????????????o????????????? ?????????????????????????????????????????????U·??? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????#????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ???????????????”

这是我们期待的结果吗?这是一个可行的模板吗?你能解释一下(aRawData := pTemplate;)'aRawData' 的交互,它是一个变体,'pTemplate;)'是一个 Dispatch 变量。我在写路径上吗?

4

1 回答 1

1

是的,那是指纹模板的二进制数据,用于验证指纹。

您可以将其保存在数据库中的 blob 或二进制文件中并将其加载或 bintohex 并将其保存在文本文件中。

模板和原始数据之间的区别在于,模板是用于在阅读器下一次按下手指时验证手指的模板。如果您打印出原始数据,您会发现它要大得多。

看起来你在正确的轨道上,只是不要担心二进制数据。

于 2010-11-02T15:53:47.973 回答