| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2979 人关注过本帖
标题:请问大侠,VFP如何去掉一行字符中的括号及括号中内容?
只看楼主 加入收藏
甲辰
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2021-4-20
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:31 
请问大侠,VFP如何去掉一行字符中的括号及括号中内容?
请问大侠,VFP如何去掉一行字符中的括号及括号中内容?
如:[01次]面包[02次]生菜 替换为 面包生菜
    [01次]80,[02次]92,  替换为 80,92,


[此贴子已经被作者于2021-11-10 17:58编辑过]

搜索更多相关主题的帖子: 内容 括号 字符 一行 VFP 
2021-11-10 17:57
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:3 
c="[01次]80,[02次]92,"
n=OCCURS(",",c)
z=''
FOR i=1 TO n
z=z+STREXTRACT(c,']',[,],i)+","
ENDFOR
?z
2021-11-10 18:12
甲辰
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2021-4-20
收藏
得分:0 
谢谢大侠!但处理结果还不行,请看帖子
以下是引用foxfans在2021-11-10 18:12:27的发言:

c="[01次]80,[02次]92,"
n=OCCURS(",",c)
z=''
FOR i=1 TO n
z=z+STREXTRACT(c,']',[,],i)+","
ENDFOR
?z

========================
c=thisform.edit3.Value
n=OCCURS(",",c)
z=""
FOR i=1 TO n
z=z+STREXTRACT(c,']',[,],i)+","
ENDFOR

thisform.edit2.Value=z
===============================
一是:数据只提取]后面的一位数
二是:二行以上的数据,处理后变成一行。


[此贴子已经被作者于2021-11-10 20:21编辑过]

2021-11-10 18:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:3 
扫描一次字符串好了,“[”开始舍弃,“]”结束舍弃
2021-11-10 19:49
甲辰
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2021-4-20
收藏
得分:0 
大侠好,扫描的代码如何写?
以下是引用吹水佬在2021-11-10 19:49:30的发言:

扫描一次字符串好了,“[”开始舍弃,“]”结束舍弃

扫描的代码如何写?
2021-11-10 19:58
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:3 
LOCAL xchr,xsubchr
*xchr = "[44次]13,35,[43次]07,46,[42次]14,33"
xchr = "[01次]面包[02次]生菜"

DO WHILE .T.
    xsubchr = STREXTRACT(xchr,'[',']')
    IF LEN(xsubchr)=0
        EXIT
    ENDIF
    xchr = STRTRAN(xchr,'['+xsubchr+']','')
ENDDO

MESSAGEBOX( xchr)
2021-11-10 20:31
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用甲辰在2021-11-10 19:58:20的发言:


扫描的代码如何写?

程序代码:
? fun("[01次]面包[02次]生菜") && 面包生菜
? fun("[01次]80,[02次]92")  && 80,92

FUNCTION fun(s)
    ret = ""
    bg = .T.
    FOR i=1 TO LEN(s)
        ch = SUBSTR(s,i,1)
        IF ch == "["
            bg = .F.
            LOOP
        ELSE
            IF ch == "]"
                bg = .T.
                LOOP
            ENDIF
        ENDIF
        IF bg
            ret = ret + ch
        ENDIF
    ENDFOR 
    RETURN ret
ENDFUNC
2021-11-10 21:20
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:0 
? fun("[01次]面包[02次]生菜") && 面包生菜
? fun("[01次]80,[02次]92")  && 80,92
FUNCTION Fun(cc)
    z=''
    n=ALINES(ss,cc,4,"]","[")
    FOR n=1 TO n STEP 2
      z=z+ss(n+1)
    ENDFOR
    RETURN z
ENDFUNC
Vfp这类函数很多,自己灵活使用

[此贴子已经被作者于2021-11-10 21:27编辑过]

2021-11-10 21:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
程序代码:
s = "[01次]面包,[02次]生菜,[01次]80,[02次]92"
?fun(s) 

FUNCTION fun(s)
    p1 = AT("[",s)
    p2 = AT("]",s)
    DO WHILE p1>0 AND p2>p1
        s = STUFF(s,p1,p2-p1+1,"")
        p1 = AT("[",s)
        p2 = AT("]",s)
    ENDDO
    RETURN s
ENDFUNC
2021-11-10 22:06
甲辰
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2021-4-20
收藏
得分:0 
谢谢,辛苦了!
以下是引用laowan001在2021-11-10 20:31:57的发言:

LOCAL xchr,xsubchr
*xchr = "[44次]13,35,[43次]07,46,[42次]14,33"
xchr = "[01次]面包[02次]生菜"

DO WHILE .T.
    xsubchr = STREXTRACT(xchr,'[',']')
    IF LEN(xsubchr)=0
        EXIT
    ENDIF
    xchr = STRTRAN(xchr,'['+xsubchr+']','')
ENDDO

MESSAGEBOX( xchr)


谢谢,辛苦了!
2021-11-10 22:08
快速回复:请问大侠,VFP如何去掉一行字符中的括号及括号中内容?
数据加载中...
 
   



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

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