关于数据大小排列同时又要考虑序号的问题
之前有网友提问,比如 1到5号仓对应5个重量,将重量从小到大排列好以后,还要能够知道从小到大的这个重要对应的仓号;排序很简单,但是对号入座有点麻烦了;我是这么做的,先将源数据拷贝到一个位置,然后在分配一个相同大小的位置,按现有的结构分配5个编号,当用冒泡法进行数据排序的时候,序号跟着一起变动,这样好像就解决问题了;在DB10里定义若干个INT数据类型DBW0到DBW8为源数据,DBW10到DBW18为数据排序的位置,DBW20到DBW28为序号。 CALL "BLKMOV" SRCBLK :=P#DB10.DBX 0.0 INT 5 RET_VAL:=#TEMP1 DSTBLK :=P#DB10.DBX 10.0 INT 5 //先做一个数据的拷贝 OPN DB 10 LAR1 P#20.0 L 1 T #TEMP3 L 5C001: T #LOOP3 L #TEMP3 T DBW [AR1,P#0.0] 全国好的癫痫病专科医院L #TEMP3 + 1 T #TEMP3 +AR1 P#2.0 L #LOOP3 LOOP C001 //循环写入1到5的序号 L 4A003: T #LOOP1 LAR1 P#10.0乌鲁木齐治疗癫痫医院排行榜 L 4A002: T #LOOP2 L DBW [AR1,P#0.0] L DBW [AR1,P#2.0] >I JCN A001 L DBW [AR1,P#0.0] T #TEMP2 L癫痫病心理护理 DBW [AR1,P#2.0] T DBW [AR1,P#0.0] L #TEMP2 T DBW [AR1,P#2.0] //数据大小的排列 L DBW [AR1,P#10.0] T #TEMP4 L DBW [AR1,P#12.0] T DBW [AR1,P#10.0] L 郑州军海医院#TEMP4 T DBW [AR1,P#12.0] //序号也要跟着走A001: +AR1 P#2.0 L #LOOP2 LOOP A002 L #LOOP1 LOOP A003模拟后的图片:
以重量为30为例,对应的就是4号仓,正确的。