标题:如何查找列数据的全部字符
只看楼主
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
结帖率:76.81%
已结贴  问题点数:20 回复次数:15 
如何查找列数据的全部字符
如表:
程序代码:
create cursor b1 (m1 c(3),m2 c(3))
insert into b1 values ("ab","bb")
insert into b1 values ("a","b")
insert into b1 values ("bb","a")
insert into b1 values ("","bb")
insert into b1 values ("bc","")
insert into b1 values ("c","ab")


如何统计一列的全部字符,如M1列含有“abc” 字符,M2列有"ab"字符,用什么方法较好?
谢谢!

[此贴子已经被作者于2021-7-26 14:21编辑过]

搜索更多相关主题的帖子: into values 全部 insert 字符 
2021-07-26 14:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
在你以前发的帖子中有查找字符的方法

坚守VFP最后的阵地
2021-07-26 15:28
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
以下是引用sdta在2021-7-26 15:28:29的发言:

在你以前发的帖子中有查找字符的方法

本人愚昧,在您回复的帖子中,是针对一个字段值中查找的方法,在对一列中所有字符找出不重复的全部字符,真还没想到好的方法。
2021-07-26 15:54
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
程序代码:
aa = ""
LOCATE FOR 'a'$m1
IF !EOF()
aa=aa+'a'
ENDIF
LOCATE FOR 'b'$m1
IF !EOF()
aa=aa+'b'
ENDIF
LOCATE FOR 'c'$m1
IF !EOF()
aa=aa+'c'
ENDIF
? aa

这个方法太笨了点,有其他好方法吗?
2021-07-26 16:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
“在对一列中所有字符找出不重复的全部字符”
具体点,对下面的数据想要的结果是什么?
create cursor b1 (m1 c(3),m2 c(3))
insert into b1 values ("ab","bb")
insert into b1 values ("a","b")
insert into b1 values ("bb","a")
insert into b1 values ("","bb")
insert into b1 values ("bc","")
insert into b1 values ("c","ab")
2021-07-26 16:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用fdqzy在2021-7-26 16:05:11的发言:

aa = ""
LOCATE FOR 'a'$m1
IF !EOF()
aa=aa+'a'
ENDIF
LOCATE FOR 'b'$m1
IF !EOF()
aa=aa+'b'
ENDIF
LOCATE FOR 'c'$m1
IF !EOF()
aa=aa+'c'
ENDIF
? aa
这个方法太笨了点,有其他好方法吗?

每个LOCATE 只找一个记录
2021-07-26 16:10
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
回复 6楼 吹水佬
我只需要一列所有字符中,不同字符只列出一个就行,即这列中到底含哪几个不同字符。
如m1列含有“abc”,m2列含有"ab".

[此贴子已经被作者于2021-7-26 16:25编辑过]

2021-07-26 16:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用fdqzy在2021-7-26 16:22:35的发言:

我只需要一列所有字符中,不同字符只列出一个就行,即这列中到底含哪几个不同字符。
如m1列含有“abc”,m2列含有"ab".

create cursor b1 (m1 c(3),m2 c(3))
insert into b1 values ("ab","bb")
insert into b1 values ("ax","b")
insert into b1 values ("bb","a")
insert into b1 values ("z","bb")
insert into b1 values ("bc","")
insert into b1 values ("cy","ab")
是不是这意思
m1列的结果:abcxyz
2021-07-26 16:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
create cursor b1 (m1 c(3),m2 c(3))
insert into b1 values ("ab","bb")
insert into b1 values ("a","b")
insert into b1 values ("bb","a")
insert into b1 values ("","bb")
insert into b1 values ("bc","")
insert into b1 values ("c","ab")
LOCAL aa[FCOUNT()]
aa = ""
SCAN 
    FOR lnj = 1 TO FCOUNT()
        b1 = ALLTRIM(EVALUATE(FIELD(lnj)))
        IF LEN(b1) > 0
            FOR lnk = 1 TO LEN(b1)
                b2 = SUBSTR(b1, lnk, 1)
                IF NOT b2$aa[lnj]
                    aa[lnj] = aa[lnj] + b2
                ENDIF 
            ENDFOR
        ENDIF 
    ENDFOR
ENDSCAN
LIST MEMORY LIKE aa

坚守VFP最后的阵地
2021-07-26 16:42
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
以下是引用吹水佬在2021-7-26 16:34:44的发言:


create cursor b1 (m1 c(3),m2 c(3))
insert into b1 values ("ab","bb")
insert into b1 values ("ax","b")
insert into b1 values ("bb","a")
insert into b1 values ("z","bb")
insert into b1 values ("bc","")
insert into b1 values ("cy","ab")
是不是这意思
m1列的结果:abcxyz

对!
2021-07-26 17:08



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




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

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