| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:帮帮忙,看看。谢谢!
只看楼主 加入收藏
mk812
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-1-31
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:14 
帮帮忙,看看。谢谢!
写了一段,目的是将一个文件中某个字段下不同的内容提取到一个数组中。但执行不了。尤其是到for下的if 说“下标超界”,不知道原因,求解释!万分感谢~!(或者别的更简单的方法,嘿嘿)

use gxmlb                       &&打开gxmlb.dbf
k=1                             && 变量k,并赋值1
count to js                     &&统计gxmlb有多少个记录,并赋值到js
dimension aa(k)                 &&定义数组aa
goto top                        &&指针位置在第一位
xmlb=alltrim(alltrim(项目类别)) &&字段"项目类别"的第一个值赋值到变量中xmlb中
aa(k)=xmlb                      &&数组aa的第一个值赋值,值为字段中第一个值
for m=1 to js                   && for循环,从1到总记录数
    if aa(m)=xmlb               &&如果数组aa的值等于当前位置字段的值,
        skip 1                  &&指针下移一个位置
        xmlb=alltrim(alltrim(项目类别))  &&指针当前位置的字段值赋值到变量中,同时m递增1,再次循环
    else                        &&如果数组aa的值不等于当前位置字段的值,
        aa(m+1)=xmlb            &&数组下表加1,并将字段当前位置的值赋值
        goto top                &&指针位置回到第一位
        m=1                     &&从头再次循环
    endif                       &&if结束
endfor                          &&for结束

基本上算是头一回独立写,别笑话哦!请不吝赐教!
搜索更多相关主题的帖子: 统计 
2011-04-25 11:12
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:4 
dimension aa(k) 有问题,应该是dimension aa(js) 吧?

相互学习,互相交流,共同提高。
2011-04-25 11:32
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
还有不出问题的问题,只要一个alltrim() 就行了:
xmlb=alltrim(项目类别)

相互学习,互相交流,共同提高。
2011-04-25 11:35
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:4 
这样能行吗?(仅做参考)
close all
select 项目类别 from gxmlb into cursor mmm group by 项目类别
js=reccount()
dimension aa(js)
n=1
scan
    ff="aa(n)=alltrim(项目类别)"
    &ff
    n=n+1
endsc
  ?aa(1),aa(2) && 测验前2个结果



 

[ 本帖最后由 qingfameng 于 2011-4-25 13:34 编辑 ]
2011-04-25 13:23
mk812
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-1-31
收藏
得分:0 
以下是引用qjbzjp在2011-4-25 11:32:40的发言:

dimension aa(k) 有问题,应该是dimension aa(js) 吧?
如果是dimension aa(js),那数组的范围太大,我只是想取字段中不同的内容放在数组中,例如字段中的内容有:ww, ee, rr, ee, ww,那数组中的内容只是:ww,ee,rr  
2011-04-25 14:05
mk812
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-1-31
收藏
得分:0 
以下是引用qjbzjp在2011-4-25 11:35:02的发言:

还有不出问题的问题,只要一个alltrim() 就行了:
xmlb=alltrim(项目类别)
这个收到,谢谢!
2011-04-25 14:06
mk812
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-1-31
收藏
得分:0 
以下是引用qingfameng在2011-4-25 13:23:34的发言:

这样能行吗?(仅做参考)
close all
select 项目类别 from gxmlb into cursor mmm group by 项目类别
js=reccount()
dimension aa(js)
n=1
scan
    ff="aa(n)=alltrim(项目类别)"
    &ff
    n=n+1
endsc
  ?aa(1),aa(2) && 测验前2个结果



 
select 项目类别 from gxmlb into cursor mmm group by 项目类别————没太懂,cursor是不是把字段内容放在临时数据源中?
另,数组的范围定义的太大,这个数组我还要引用,所以怕范围定大了影响后面的运作,还是可丁可卯的好


[ 本帖最后由 mk812 于 2011-4-25 14:17 编辑 ]
2011-04-25 14:08
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
楼主的算法可能有点问题,直接用select语句实现可能更简便些:
select dist 项目类别 from gxmlb into array aa
aa数组中应该就是表中所有的项目类别。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-04-25 14:39
mk812
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-1-31
收藏
得分:0 
以下是引用hu9jj在2011-4-25 14:39:05的发言:

楼主的算法可能有点问题,直接用select语句实现可能更简便些:
select dist 项目类别 from gxmlb into array aa
aa数组中应该就是表中所有的项目类别。
哦,其实我就是想把一个字段中的内容重复的内容剔除。因为我的最终目的是:让表单中组合框控件的下拉表中不要显示字段中重复的内容。但又不知道怎么弄,所以想写一段,之后让组合框引用数组
2011-04-25 15:13
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:4 
挺好,只要能通过自己掌握的命令,去完成某项任务,能达到目的就好。据我体会,编程的方法太多了,每人有不同的思路,当然有优秀的,有差一点的,我是业余爱好者,能达到目的就行。
版主hu9jj讲的select语句好用。

我曾经为了获得你要的那个结果,用过更笨的办法,就是索引,再分组,也能完成,呵呵。


[ 本帖最后由 muyubo 于 2011-4-25 16:38 编辑 ]
2011-04-25 16:19
快速回复:帮帮忙,看看。谢谢!
数据加载中...
 
   



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

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