如何将几个字段的值写入数组,排序后再替换为字段值
新建文件夹 - 副本.zip
(81.48 KB)
有wldj(物理等级)- hxdj - zzdj - lsdj - dldj - swdj - tydj等字段,想把这几个字段连接(CCCDCCA)并排序后(ACCCCCD)写入dj字段,
问题以前求助过,sdta版帮解决过,但只是使用知其然不知其所以然。同事问能否把几个字段值放入数组,将数组内容排序后再写入。试着学习了一下,还没进入循环,刚开始就卡住了,查看vfp帮助,没能解决,还是太菜了,请帮助分析解决。
尝试1
SCATTER FIELDS wldj,hxdj,zzdj,lsdj,dldj,swdj TO px
?px&&&错误,只显示一个A,不是想象中的CCCDCCA呢?
尝试2
DIMENSION x(7)
* 为数组元素赋值
x(1) = WLDJ
x(2) = HXDJ
x(3) = ZZDJ
x(4) = LSDJ
x(5) = DLDJ
x(6) = SWDJ
x(7) = TYDJ
LIST MEMORY LIKE x && 显示数组元素
=ASORT(x)
?x&&&错误,只显示一个A,不是想象中的CCCDCCA呢?
之前版主代码能完美处理,但只是拿来主义,我和同事都没能彻底消化,尤其等级排序部分
* VFP9 代码
t1=SECONDS()&&计时函数
SCAN
REPLACE 七科 WITH djpx(ALLTRIM(wldj - hxdj - zzdj - lsdj - dldj - swdj - tydj))
REPLACE 六科 WITH djpx(ALLTRIM(wldj - hxdj - zzdj - lsdj - dldj - swdj))
ENDSCAN
MESSAGEBOX("共运行:"+TRANSFORM(SECONDS()-t1)+"秒") &&计算用时多少
*
* 等级排序
*
FUNCTION djpx(cStr)
LOCAL px[LEN(cStr)]
FOR i = 1 TO LEN(cStr)
px[i] = SUBSTR(cStr, i, 1)
ENDFOR
=ASORT(px)
cStr1 = ""
FOR i = 1 TO ALEN(px,1)
cStr1 = cStr1 + px[i]
ENDFOR
RETURN cStr1
[此贴子已经被作者于2023-7-6 00:18编辑过]