标题:字符串操作,遍历组合,可否使用For语句?最近VFP块忘光了
只看楼主
ytahdou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-19
结帖率:0
已结贴  问题点数:20 回复次数:7 
字符串操作,遍历组合,可否使用For语句?最近VFP块忘光了
AA='040506'
最后实现第一个字符串组合,输出:04#05#06#04+05#04+06#05+06#04+05+06
输出第二个:04*05#04*06#05*06#04*05*06
记得使用For  ENdfor是不是可以容易实现?
搜索更多相关主题的帖子: For VFP 遍历 组合 字符串 
2021-06-23 20:51
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
是分别选1、2、3的组合
2021-06-23 21:24
ytahdou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-19
得分:0 
ksxkkmzhdm='040506'
kmyq_OR=''
kmyq_AND=''
For IIkms=1 To 3
    kmyq_OR=kmyq_OR+Substr(ksxkkmzhdm,(IIKMS-1)*2+1,2)+'+'
    kmyq_AND=kmyq_AND+Substr(ksxkkmzhdm,(IIKMS-1)*2+1,2)+'*'
        For IIkmss=IIkms+1 To 3
        kmyq_OR=kmyq_OR+Substr(ksxkkmzhdm,(IIKMSS-1)*2+1,2)+'#'
        kmyq_and=kmyq_and+Substr(ksxkkmzhdm,(IIKMSS-1)*2+1,2)+'#'
    Endfor
Endfor
Messagebox(kmyq_OR,kmyq_and)

问题在哪?
2021-06-23 21:28
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
硬来的
s='040506'
a = SUBSTR(s,1,2)
b = SUBSTR(s,3,2)
c = SUBSTR(s,5,2)
? a+"#"+b+"#"+c+"#"+a+"+"+b+"#"+a+"+"+c+"#"+b+"+"+c+"#"+a+"+"+b+"+"+c

[此贴子已经被作者于2021-6-23 22:10编辑过]

2021-06-23 22:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
程序代码:
CLEAR
AA = '040506'
LOCAL la[3]
FOR lnj = 1 TO 3
    la[lnj] = SUBSTR(aa, lnj*2 - 1, 2)
ENDFOR
STORE "" TO c1, c2, c3, c4, c5
FOR lnj = 1 TO 3
    IF BETWEEN(lnj, 1, 3)
        c1 = c1 + "#" + la[lnj]
        c5 = c5 + "+" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 1, 2)
        c2 = c2 + "+" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 1, 3)
        c3 = c3 + "+" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 2, 3)
        c4 = c4 + "+" + la[lnj]
    ENDIF    
ENDFOR

? "第一个字符串组合=" + SUBSTR(c1, 2) + "#" + SUBSTR(c2, 2) + "#" + SUBSTR(c3, 2) + "#" + SUBSTR(c4, 2) + "#" + SUBSTR(c5, 2)

STORE "" TO c1, c2, c3, c4
FOR lnj = 1 TO 3
    IF BETWEEN(lnj, 1, 3)
        c4 = c4 + "*" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 1, 2)
        c1 = c1 + "*" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 1, 3)
        c2 = c2 + "*" + la[lnj]
    ENDIF 
    IF INLIST(lnj, 2, 3)
        c3 = c3 + "*" + la[lnj]
    ENDIF    
ENDFOR
? "第二个字符串组合=" + SUBSTR(c1, 2) + "#" + SUBSTR(c2, 2) + "#" + SUBSTR(c3, 2) + "#" + SUBSTR(c4, 2)
收到的鲜花
  • ytahdou2021-06-24 06:40 送鲜花  1朵  

坚守VFP最后的阵地
2021-06-23 22:08
ytahdou
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-19
得分:0 
感谢,但都不是很合适。
2021-06-23 22:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用ytahdou在2021-6-23 22:37:09的发言:

感谢,但都不是很合适。

如何不合适?
与你的结果不符?

坚守VFP最后的阵地
2021-06-23 22:55
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:7 
他好像要排列组合
2021-06-24 08:33



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




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

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