| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2352 人关注过本帖
标题:如何查找列数据的全部字符
取消只看楼主 加入收藏
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
结帖率:73.97%
收藏
已结贴  问题点数: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")


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

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

搜索更多相关主题的帖子: into values 全部 insert 字符 
2021-07-26 14:10
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用sdta在2021-7-26 15:28:29的发言:

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

本人愚昧,在您回复的帖子中,是针对一个字段值中查找的方法,在对一列中所有字符找出不重复的全部字符,真还没想到好的方法。
2021-07-26 15:54
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分: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
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 6楼 吹水佬
我只需要一列所有字符中,不同字符只列出一个就行,即这列中到底含哪几个不同字符。
如m1列含有“abc”,m2列含有"ab".

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

2021-07-26 16:22
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分: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
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用sdta在2021-7-26 16:42:18的发言:

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

谢谢!
    好像版主是统计的所有列,不是单列m1列或m2列?

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

2021-07-26 17:09
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
回复 12楼 sdta
是我看错了,谢谢!
2021-07-26 18:26
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-7-27 11:41:59的发言:

如果字符相对固定(假设数据只是小写字母),算法可以简化一下(减法):
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")
cs = "abcdefghijklmnopqrstuvwxyz"
? "m1:", fun("m1")
? "m2:", fun("m2")
RETURN

FUNCTION fun(cf)
    s = cs
    SCAN
        s  = CHRTRAN(s,ALLTRIM(EVALUATE(cf)),"")
    ENDSCAN
    RETURN CHRTRAN(cs,s,"")
ENDFUNC

谢谢!
2021-07-27 14:30
快速回复:如何查找列数据的全部字符
数据加载中...
 
   



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

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