标题:字符串替换求助!
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 

程序代码:
CREATE CURSOR test (xm c(30))
INSERT INTO test VALUES ("张三、张三、李四")
INSERT INTO test VALUES ("刘三、李四、刘三")
INSERT INTO test VALUES ("李四江、刘三、李四、刘三")
SELECT *, PADR(fun(),30," ") new_xm FROM test

FUNCTION fun()
    ALINES(arr,xm,15,"、")
    DIMENSION tmp[ALEN(arr)]
    tmp[1] = arr[1]
    ret = arr[1]
    k = 1
    FOR i=2 TO ALEN(arr)
        IF ASCAN(tmp,arr[i],1,-1,-1,15) == 0
            k = k + 1
            tmp[k] = arr[i]
            ret = ret + "、" + arr[i]
        ENDIF
    ENDFOR
    RETURN ret
ENDFUNC
2023-04-20 09:40
wangguowu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:15
注 册:2012-2-15
得分:0 
回复 8楼 sdta
这个可以用,但列转行不止姓名一列,有:证件类型,证件号码等多个字段,是否要分别建不同函数名来对字段操作!
2023-04-20 10:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
上传相关文件看看

坚守VFP最后的阵地
2023-04-20 10:04
wangguowu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:15
注 册:2012-2-15
得分:0 
回复 11楼 吹水佬
谢谢你,问题同上!
2023-04-20 10:05
wangguowu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:15
注 册:2012-2-15
得分:0 
回复 13楼 sdta
tb.rar (420 Bytes)
2023-04-20 10:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用wangguowu在2023-4-20 10:02:28的发言:

这个可以用,但列转行不止姓名一列,有:证件类型,证件号码等多个字段,是否要分别建不同函数名来对字段操作!

没明白意思

坚守VFP最后的阵地
2023-04-20 11:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 11楼 吹水佬
精简一下
程序代码:
CREATE CURSOR test (xm c(30))
INSERT INTO test VALUES ("张三、张三、李四")
INSERT INTO test VALUES ("刘三、李四、刘三")
INSERT INTO test VALUES ("李四江、刘三、李四、刘三")
SELECT *, PADR(fun(),30," ") new_xm FROM test

FUNCTION fun()
    ALINES(arr,xm,15,"、")
    ret = arr[1]
    FOR i=2 TO ALEN(arr)
        IF ASCAN(arr,arr[i],1,-1,-1,15) >= i
            ret = ret + "、" + arr[i]
        ENDIF
    ENDFOR
    RETURN ret
ENDFUNC
2023-04-20 11:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用wangguowu在2023-4-20 10:02:28的发言:

这个可以用,但列转行不止姓名一列,有:证件类型,证件号码等多个字段,是否要分别建不同函数名来对字段操作!

转来转去有点麻烦
数据结构优化一下算法也许会简单些
2023-04-20 11:26
wangguowu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:15
注 册:2012-2-15
得分:0 
回复 16楼 sdta
就是按权利人类别分组,其宅各列列转行!这个
数据要在报表中使用@
2023-04-20 13:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511961-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112515 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved