| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2766 人关注过本帖, 1 人收藏
标题:VF中怎么样在数组中查到与条件类似的元素
只看楼主 加入收藏
chenlingxiao
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-5-20
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:7 
VF中怎么样在数组中查到与条件类似的元素
VF中怎么样在数组中查到与条件类似的元素,比如数组中有123,423,523这些元素,我想搜寻*23这样的,该怎么办
搜索更多相关主题的帖子: 怎么样 条件 元素 
2012-05-22 00:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏(1)
得分:0 
看下ASCAN()

坚守VFP最后的阵地
2012-05-22 06:48
chenlingxiao
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-5-20
收藏
得分:0 
ASCAN() 好象是只能搜索到完全一样的元素
2012-05-22 11:54
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
自己写个函数

★★★★★为人民服务★★★★★
2012-05-22 15:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
回复 3楼 chenlingxiao
对“*23”我是这样理解的,“*”可以代表任意一个字符。对于这种情况可以用ASCAN()。
还有一种理解就是“*23”中是否有“*”,都不要去管它,可以直接当成“23”处理,这样就可以理解为字符“23”是否包含在另外一个字符表达式中,处理这个问题的方法多种多样,简单举一示例如下:
程序代码:
LOCAL ARR(10)
ARR="" &&定义数组元素为字符型数据
FOR I=1 TO ALEN(ARR)
    ARR(I)=TRANSFORM(I-1)+IIF(MOD(I,2)=0,"23","32")
    ? I,ARR(I) && 显示生成的数组元素
    IF AT("23",ARR(I))>0
       MESSAGEBOX("字符(23)包含在数组第 "+TRANSFORM(I)+" 个元素 "+ARR(I)+" 中")
    ENDIF
ENDFOR



[ 本帖最后由 sdta 于 2012-5-22 20:18 编辑 ]

坚守VFP最后的阵地
2012-05-22 20:00
chenlingxiao
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-5-20
收藏
得分:0 
回复 5楼 sdta
“*23”我是这样理解的,“*”可以代表任意一个字符。对于这种情况可以用ASCAN()。

你说可以用ASCAN(),但是我用了,但是写不成,不知什么原因,请举例说明?谢谢
2012-05-23 00:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 6楼 chenlingxiao
假设“*”为一字符型数字变量时,此时"*"可以用一个变量替代,假设这个变量为X,此时X为字符串"0193425678"中的任意一个字符,简单举一示例如下:
程序代码:
CLEAR
LOCAL ARR(10)
ARR=""
? "显示生成的数组元素"
FOR I=1 TO ALEN(ARR)
    ARR(I)=TRANSFORM(I-1)+IIF(MOD(I,2)=0,"23","32") &&生成数组元素
    ? I,ARR(I)
ENDFOR
X="0193425678"
?
? "匹配数组元素编号","字符串顺序号","字符串("+X+")"
FOR I=1 TO ALEN(ARR)
    X1=SUBSTR(X,I,1)+"23" &&生成任意字符串
    IF ASCAN(ARR,X1)>0
       ? ASCAN(ARR,X1),I,SPACE(10)+X1
       *MESSAGEBOX("字符串"+X1+"包含在数组ARR第 "+TRANSFORM(ASCAN(ARR,X1))+" 个元素 "+X1+" 中")
    ENDIF
ENDFOR
*-----请对比上述显示结果

 掌握函数的返回值,在代码的编写过程中显得十分重要。上面的代码就是合理的利用了AT()、ASCAN()函数的返回值,做为 IF ENDIF 语句的判断条件。

[ 本帖最后由 sdta 于 2012-5-23 08:33 编辑 ]

坚守VFP最后的阵地
2012-05-23 07:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
用LIKE()函数,自己查帮助,看了自然知道怎么做。

授人以渔,不授人以鱼。
2012-05-24 19:05
快速回复:VF中怎么样在数组中查到与条件类似的元素
数据加载中...
 
   



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

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