变量名排序
s1=15.60s2=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个变量只是举例,实际应用中会变化,需要通用并且快捷方法,谢谢

程序代码:
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编辑过]