这样也许会快点
table.disablecontrol;
你的代码
。。
table.enablecontrol;

解决方案 »

  1.   

    谢谢大家的关心啊,呵……
    因为函数是别人已经提供了的(ACTIVEX),所以我不能改它的程序……还有一个信息就是:
       他给我提供的函数有两个:
    Function VerFinger(regTemplate, verTemplate) As Boolean
    比对两枚指纹的特征模版是否匹配。其中regTemplate表示指纹登记特征模版,verTemplate表示现场采集的指纹验证特征模版。两枚指纹匹配时返回 True,不匹配时返回 FalseFunction IdentificationInFPCacheDB (fpcHandle As Long, pVerTemplate,  Byval Score As Long, Byval ProcessedFPNumber As Long) As Long
    将指纹验证模板pVerTemplate和指纹识别高速缓冲空间fpcHandle中所有登记模板进行比对,Score传出ProcessedFPNumber次比对中的最高分数,ProcessedFPNumber传出比对的次数,当识别成功时返回值指纹标识,失败返回-1。
    注意:
    在识别过程中如果比对分数大于等于属性Threshold,则认为比对成功,不再和缓冲空间中剩余的指纹登记模板进行比对,函数返回匹配成功的指纹登记模板的指纹标识;
    当指纹验证模板和指纹识别高速缓冲空间中所有指纹登记模板进行比对的分数都没有超过设定的Threshold,但同时比对的最高分数大于等于Score,则认为比对也是匹配成功,函数返回比对最高分数的指纹登记模板的标识,推荐设定为8;
    前一个比对时间很长(一个200MS),后一个比对多个(1:N)最多都不超过30MS???我能看到的它们的区别是后一个在执行前用了下面这个函数……Function CreateFPCacheDB As Long
    创建指纹识别高速缓冲空间,进行1:N识别时必须首先调用该函数得到指纹识别缓冲空间句柄。所以我就问能不能通过创建CACHE来实现了……
      

  2.   

    兄弟,这个cache的实现是和匹配算法相关的。如果这个算法十分复杂,产生大量的中间数据,而且这些中间数据重复性高得话(如果数据多,重复性肯定是存在的)。那么缓冲将十分重要。
      

  3.   

    我有个想法
    开辟一段内存段,做临时数据处理
    先把要比对的数据全读出来,置入数组或TStringList中
    开始比对
    结束比对愚见
      

  4.   

    Active是啥写的,那个function怎么那个模样???
      

  5.   

    呵,用内存也不行啊,问题还是上面所说的啦对了,NIZVOO,你也好,帮我问候朋友们!还有,你能不能叫几个高手来帮忙啊?……
      

  6.   

    兄弟,这个cache的实现是和匹配算法相关的。如果这个算法十分复杂,产生大量的中间数据,而且这些中间数据重复性高得话(如果数据多,重复性肯定是存在的)。那么缓冲将十分重要。那你会不会创建CACHE啊?
      

  7.   

    你可以首先
    h:=CreateFPCacheDB;////创建Cache
    我想此时可以利用h,Load一些指纹数据到Cache里面,
    然后用
    Function IdentificationInFPCacheDB (h, pVerTemplate, Score,ProcessedFPNumber);
    来进行比对,我们没有你的那个ActiveX控件和相关资料以及指纹数据,否则的话,可以测试一下。
    P.S:如果可以的话,能不能给我这个控件以及相应的数据看看?
    [email protected]
      

  8.   

    kingron(对CSDN愤怒中……) :那些东西可有好大的啊,所以不太好发……
    你可以到http://www.zksoftware.com/download.htm中去下载Biokey SDK 3.0 Pro 示例程序(普通版) ,那里面有示例程序,先要SETUP的……(ACTIVEX)。 你也只能看看源程序了,因为指纹数据我还不知道怎么存到数据库呢?
      

  9.   

    估计众位大虾还没有接触过需要产生海量中间数据的科学算法。把数据全部装入内存是不对的,你有多少内存?512M,1G,那如果有10G的中间数据呢?在这种情况下,数据缓冲根据重要的不同需要分级。最重要的需要按照树形放入内存中,差一点的放在虚拟存储空间里面(也按照树形)。再差一点可以放在连续空间中(比如文件),最差的只能不存放(因为是中间数据嘛)。所以首先你要估计一下算法产生多少中间数据。如果小于你的内存容量。那么再好不过。如果大于的话。你最好有选择的放入内存还是虚存。如果真的是海量,你的数据缓冲优先等级机制一定需要很完善才可以大家类比一下CPU的一级二级缓冲就知道什么意思了。
      

  10.   

    是指纹模板数据啦,上面贴子上说了有两个函数,它们的区别是一个在执行前搞用了CreateFPCacheDB另一个没有。也就是说IdentificationInFPCacheDB这个函数是与CACHE中的指纹数据进行比对,而且是与多个比对。
    而VerFinger函数则只与一个指纹数据进行比较,但它的数据是放到内存中的。
    前者就算是一个比十个也不会超过30MS(有时为0ms),而后者与一个比较都至少得200MS。
    这两个函数都是一个公司提供的。照说具体每一个指纹的比对算法应该一样啊,为什么速度会有这么大的区别?
    所以我就想是不是因为那个CreateFPCacheDB函数创建了一些CACHE之类的东西?
    谢谢大家关心,请继续关注!!!
      

  11.   

    Liu_xiang你把贴子在其它栏贴一下。
    像c++ vc++ pb vb 算法 asm bcb等栏贴,毕竟delphi上头只有一部分人。
      

  12.   

    你用的是中控的指纹采集仪,我用的是u are u的产品,
    我也有同样的比对函数,他是将指纹数据存放在它自定义的一个指纹库里,然后
    我做线程挨个去比对库中的信息,我倒还没注意像你所说的第一种情况。
    我感觉它的指纹库做得很强劲,看了你的问题,我觉得两着应该是差不多的
    原理。故而强烈关注!
      

  13.   

    你肯定得研究一下它使用CreateFPCacheDB是如何建立,
    在何处建立的高速缓存空间。