我想过如果计算匹配度的方法,可是因为很久没有接触数据库了,具体做法暂时还没想好
by the way,数据库用的是foxpro!!!!!(这个令我很痛苦~~~~~~~)
我想知道具体怎么实现,人工繁杂度可以降到最低
谢谢:)
...全文
696打赏收藏
forpro大侠看过来,替别人问问
有一张表,其中有一个字段,记录的是各个单位 但是同一个单位可能有不同的名字 比如:北京市工商银行分行,工行北分,工商银行北京市分行 怎么用一个简便的方法把它们都规划为同一个名字那? 我想过如果计算匹配度的方法,可是因为很久没有接触数据库了,具体做法暂时还没想好 by the way,数据库用的是foxpro!!!!!(这个令我很痛苦~~~~~~~) 我想知道具体怎么实现,人工繁杂度可以降到最低 谢谢:)
USE 数据表
SET FILTER TO !flag
SCAN
REPLACE rate WITH 999
nn = TRIM(name)
rr = RECNO()
SKIP
SCAN REST
mm = TRIM(name)
IF LEN(nn)<LEN(mm)
REPLACE rate WITH atm(nn,mm,.T.)
ELSE
REPLACE rate WITH atm(mm,nn,.T.)
ENDIF
ENDSCAN
SET ORDER TO TAG rate
BROWSE FOR RECNO()>=rr AND rate>0
* 显示匹配情况,供用户自行决定
* 匹配率为所有行与第一行相比
* 如果匹配,FLAG 输入 .T.
* 必须编写代码另行处理
SET ORDER TO
GOTO rr
ENDSCAN
RETURN
FUNCTION atm
PARAMETERS cSearch,cSearched,lPercent
PRIVATE i, n
STORE 0 TO n
FOR i = 1 TO LENC(cSearch)
IF AT_C(SUBSTRC(cSearch,i,1),cSearched)>0
n = n + 1
ENDIF
ENDFOR
RETURN IIF(lPercent,n/LENC(cSearch)*100,n)