姓名按要求过滤问题
现有一个dbf文件名为xingming其中有两列xm1,xm2
张三丰 张三
李四 王五
小丽 小莉
张子默 张了黑
高强 高强
。。。 。。。
需要达到的效果的是找到两列完全不同的姓名行,只要两列有一个字等于(也不考虑汉字位置)就过滤掉,只要完全完全不相等信息,比如以上例子返回:
李四 王五
请问如果写一个prg生成一个查询结果表。
程序代码:Set Library To myfll
Create Cursor test (xm1 V(10), xm2 V(10))
Insert into test Values ('张三丰', '张三')
Insert into test Values ('李四', '王五')
Insert into test Values ('小丽', '小莉')
Insert into test Values ('张子默', '张了黑')
Insert into test Values ('高强', '高强')
Select * from test where StrApproach(xm1, xm2) = 0

程序代码:create cursor tt (xm1 v(10), xm2 v(10))
insert into tt values ('张三丰', '张三')
insert into tt values ('李四', '王五')
insert into tt values ('小丽', '小莉')
insert into tt values ('张子默', '张了黑')
insert into tt values ('高强', '高强')
select * from tt where !left(alltrim(xm1),2)$alltrim(xm2) and !substr(alltrim(xm1),3,2)$alltrim(xm2) and !substr(alltrim(xm1),5,2)$alltrim(xm2)[此贴子已经被作者于2023-9-4 14:48编辑过]
程序代码:CLEAR
create cursor tt (xm1 v(10), xm2 v(10))
insert into tt values ('张三丰', '张三')
insert into tt values ('李四', '王五')
insert into tt values ('小丽', '小莉')
insert into tt values ('张子默', '张了黑')
insert into tt values ('高强', '高强')
SCAN
lCnt = 0
FOR ln = 1 TO LENC(ALLTRIM(xm1))
IF SUBSTRC(ALLTRIM(xm1), ln, 1) $ xm2
lCnt = lCnt + 1
EXIT
ENDIF
ENDFOR
IF lCnt = 0
? xm1, xm2
ENDIF
ENDSCAN
