我使用ClientDataSet数据集,字段:ID ,变量a:TStringList;记录值ClientDataSet包含在a变量中,例如:ClientDataSet                 a
------------------------------------
'abc'                         'ddd'
'ddd'                         'ab'
'ccc'                         'abc'
                              'ccc'
                              'eee'我使用Locate('ID',a[i],[loPartialKey]);来确定a变量中哪些值在
数据集ClientDataSet中,从而对a变量的值做其他操作但有一个问题,Locate使用的是模糊匹配,例如示例数据 'abc','ab'
将会产生错误数据请问,如何实现精确定位????
友情提示:不要告诉我使用循环机制,我要用简洁的方式,且我的数据量不是很小

解决方案 »

  1.   

    那么先用locate 
    再判断,是Next 还是要 Prior 
    +10 +100
      

  2.   

    Locate使用的是模糊匹配,例如示例数据 'abc','ab'将会产生错误数据
    ================================
    不是吧,LOCATE可以精确定位呀,使用loCaseInsensitive参数
    Locate('ID',a[i],[loCaseInsensitive]);
    或者Locate('ID',a[i],[]);
      

  3.   

    惭愧,我犯了个低级错误,things(平)(凡) 的方法我用过,可惜使用了错误的示例数据,导致我认为不能精确定位,谢谢各位