| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 976 人关注过本帖
标题:变量名排序
只看楼主 加入收藏
a1999zqw
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2009-4-3
结帖率:79.66%
收藏
 问题点数:0 回复次数:9 
变量名排序
s1=15.60
s2=2.50
s3=6.60
s4=2.51
s5=13.55
s6=0.21
s7=8.11
s8=0
s9=0
s10=0
s11=5.09
共11个变量,按变量值要从小到大排列,但要得到是变量ss:
ss="s8,s9,s10,s6,s2,s4,s11,s3,s7,s5,s1"
这11个变量只是举例,实际应用中会变化,需要通用并且快捷方法,谢谢
搜索更多相关主题的帖子: 变量 
2010-09-05 11:45
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 

弄个通用子程序, 利用 数组和asor(数组)函数, 约14句代码, 即可满足你的要求~

也可以用冒泡算法, 代码要长些~

2010-09-05 14:35
a1999zqw
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2009-4-3
收藏
得分:0 
版主,有源码吗?急.............
2010-09-05 15:58
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
也可以搞一个两个字段的表,一个字段为变量名,另一字段为变更值,SORT一下,然后
GOTOP
SS=ALLTRIM(变量名字段)-','
SKIP
SCAN FOR ! EOF()
  SS=SS-','-ALLTRIM(变量名字段)
ENDSCAN
?? SS

两人行已有我师……
2010-09-05 17:11
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
也来一段
clear
s1=15.60
s2=2.50
s3=6.60
s4=2.51
s5=13.55
s6=0.21
s7=8.11
s8=0
s9=0
s10=0
s11=5.09
CREATE CURSOR tm (fn n(6,2))
INSERT INTO tm VALUES (s1)
INSERT INTO tm VALUES (s2)
INSERT INTO tm VALUES (s3)
INSERT INTO tm VALUES (s4)
INSERT INTO tm VALUES (s5)
INSERT INTO tm VALUES (s6)
INSERT INTO tm VALUES (s7)
INSERT INTO tm VALUES (s8)
INSERT INTO tm VALUES (s9)
INSERT INTO tm VALUES (s10)
INSERT INTO tm VALUES (s11)
INDEX on fn TAG fn
ss=''
SCAN
  ss=ss+'s'+ALLTRIM(STR(RECNO()))+','
ENDSCAN
?LEFT(ss,LEN(ss)-1)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-09-05 17:25
pmc1234
Rank: 5Rank: 5
等 级:职业侠客
帖 子:398
专家分:383
注 册:2010-1-6
收藏
得分:0 
回复 4楼 啸凡
后面画这个“—”什么意思啊
2010-09-06 09:09
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
要知道什么意思,请您在命令窗口试试以下命令(逐条输入运行),看看结果:
cLSTRA='AAA  '&&(注意,这里有若干个空格)
cLSTRB='BBB'
?cLSTRA+cLSTRB
?cLSTRA-cLSTRB


两人行已有我师……
2010-09-06 20:50
pmc1234
Rank: 5Rank: 5
等 级:职业侠客
帖 子:398
专家分:383
注 册:2010-1-6
收藏
得分:0 
谢谢楼上
2010-09-07 09:35
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:355
专家分:128
注 册:2015-4-18
收藏
得分:0 
回复 4楼 啸凡
经测试需要稍微改动一下
程序代码:
CLEAR
s1=15.60
s2=2.50
s3=6.60
s4=2.51
s5=13.55
s6=0.21
s7=8.11
s8=0
s9=0
s10=0
s11=5.09
CREATE CURSOR tm (fn N(6,2),mc c(3))
INSERT INTO tm VALUES (s1,[s1])
INSERT INTO tm VALUES (s2,[s2])
INSERT INTO tm VALUES (s3,[s3])
INSERT INTO tm VALUES (s4,[s4])
INSERT INTO tm VALUES (s5,[s5])
INSERT INTO tm VALUES (s6,[s6])
INSERT INTO tm VALUES (s7,[s7])
INSERT INTO tm VALUES (s8,[s8])
INSERT INTO tm VALUES (s9,[s9])
INSERT INTO tm VALUES (s10,[s10])
INSERT INTO tm VALUES (s11,[s11])
*啸凡方式1
INDEX ON fn TAG fn
GO TOP
SS=ALLTRIM(mc)&&&将初始值赋为第一个将后面的连接号部分去掉
SKIP
FOR i=2 TO RECCOUNT()
     SS=SS-','-ALLTRIM(mc) 
    SKIP
ENDFOR
? SS 
*啸凡方式2
GO TOP
ss=""
SCAN
    SS=SS-ALLTRIM(mc) -','&&&用了alltrim函数去除了尾部空格+-就无所谓了,否则会有不同
    *SS=SS-mc -',' &&这样和上面结果相同
    *SS=SS+mc+',' &&这样尾部会有空格
ENDSCAN
?LEFT(ss,LEN(ss)-1) &&直接显示后面会多一个逗号,故需要用left函数截取一下



[此贴子已经被作者于2025-2-11 09:52编辑过]

2025-02-11 09:43
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:355
专家分:128
注 册:2015-4-18
收藏
得分:0 
回复 5楼 Tiger5392
留个脚印学习了,巧妙利用记录号,牛!思路很重要
2025-02-11 09:53
快速回复:变量名排序
数据加载中...
 
   



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

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