帮助 - 保存DigitaPersona模板文件。请参阅示例代码

时间:2010-11-02 11:50:07

标签: delphi fingerprint biometrics

DELPHI 5样本,用于保存DigitaPersona模板序列数据 到DBASE4 DBF文件。

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 ????? ?????Ø???????????????????????????????????????????? ?????????????????????? | ??????????????????????????? ?????????????????????????????????????????????????? ??????????????????????????Ĵ??????????????????????Ø ?????????????????????????????????????????????????? ?????? U·?????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ???????????????????????????????????????#?????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ??????????????????????????“

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

1 个答案:

答案 0 :(得分:1)

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

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

模板和rawdata之间的区别在于模板是用于在下次在阅读器中按下时验证手指的模板。如果你打印出更大的原始数据,你会看到它。

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