注册 登录
编程论坛 VFP论坛

请大神帮忙写一个排序代码!

甲辰 发布于 2021-11-29 22:39, 2019 次点击
如有一组数据:

第103天:【取:-3条-】
第102天:【取:-4条-】
第101天:【取:-0条-】
第100天:【取:-1条-】
第99天:【取:-4条-】
第98天:【取:-4条-】
第97天:【取:-2条-】
第96天:【取:-3条-】
第95天:【取:-2条-】

如何用VFP让其变成以下排列:
第95天:【取:-2条-】
第96天:【取:-3条-】
第97天:【取:-2条-】
第98天:【取:-4条-】
第99天:【取:-4条-】
第100天:【取:-1条-】
第101天:【取:-0条-】
第102天:【取:-4条-】
第103天:【取:-3条-】

13 回复
#2
sdta2021-11-29 22:56
是不是下面的结果
CREATE CURSOR tt (a1 c(40))
INSERT INTO tt VALUES ("第100天:【取:-1条-】")
INSERT INTO tt VALUES ("第99天:【取:-4条-】")
SELECT a1 FROM (SELECT a1, RECNO() nrec FROM tt) aa ORDER BY nrec DESC
#3
甲辰2021-11-29 23:18
谢谢!!!
以下是引用sdta在2021-11-29 22:56:01的发言:

是不是下面的结果
CREATE CURSOR tt (a1 c(40))
INSERT INTO tt VALUES ("第100天:【取:-1条-】")
INSERT INTO tt VALUES ("第99天:【取:-4条-】")
SELECT a1 FROM (SELECT a1, RECNO() nrec FROM tt) aa ORDER BY nrec DESC



将此代码写入后,关闭时提示语法错误!
我想要用下面这方式显示结果:
thisform.edit1.value=??

[此贴子已经被作者于2021-11-29 23:21编辑过]

#4
sdta2021-11-29 23:25
回复 3楼 甲辰
2楼的代码是VFP9代码
#5
甲辰2021-11-29 23:26
以下是引用sdta在2021-11-29 23:25:35的发言:

2楼的代码是VFP9代码


我用的是:VFP8
请问如何改为VFP8的?
#6
sdta2021-11-29 23:41
CREATE CURSOR tt (a1 c(40))
INSERT INTO tt VALUES ("第100天:【取:-1条-】")
INSERT INTO tt VALUES ("第99天:【取:-4条-】")
SELECT a1, RECNO() nrec FROM tt into cursor aa
SELECT a1 FROM aa ORDER BY nrec DESC to file aa.txt
thisform.edit1.value=filetostr("aa.txt")
#7
甲辰2021-11-29 23:49
以下是引用sdta在2021-11-29 23:41:09的发言:

CREATE CURSOR tt (a1 c(40))
INSERT INTO tt VALUES ("第100天:【取:-1条-】")
INSERT INTO tt VALUES ("第99天:【取:-4条-】")
SELECT a1, RECNO() nrec FROM tt into cursor aa
SELECT a1 FROM aa ORDER BY nrec DESC to file aa.txt
thisform.edit1.value=filetostr("aa.txt")


大神好:
结果显示:
  A1                                                      
  第99天:【取:-4条-】                                    
  第100天:【取:-1条-】
其它天的项没有排列出来

同时也将结果保存在根目录中,文件名:aa
我要在thisform.edit1.value显示结果,不要保存

[此贴子已经被作者于2021-11-29 23:53编辑过]

#8
sdta2021-11-30 00:03
CREATE CURSOR tt (a1 c(40))
INSERT INTO tt VALUES ("第100天:【取:-1条-】")
INSERT INTO tt VALUES ("第99天:【取:-4条-】")
SELECT a1, RECNO() nrec FROM tt into cursor aa
SELECT a1 FROM aa ORDER BY nrec DESC to file aa.txt
thisform.edit1.value=filetostr("aa.txt")
erase aa.txt
#9
sdta2021-11-30 00:06
以下是引用甲辰在2021-11-29 23:49:21的发言:



大神好:
结果显示:
  A1                                                      
  第99天:【取:-4条-】                                    
  第100天:【取:-1条-】
其它天的项没有排列出来

同时也将结果保存在根目录中,文件名:aa
我要在thisform.edit1.value显示结果,不要保存

代码只是根据提供的数据写的,还有什么没有列出来
#10
甲辰2021-11-30 00:11
以下是引用sdta在2021-11-30 00:06:21的发言:


代码只是根据提供的数据写的,还有什么没有列出来



我想运行的结果:
第95天:【取:-2条-】
第96天:【取:-3条-】
第97天:【取:-2条-】
第98天:【取:-4条-】
第99天:【取:-4条-】
第100天:【取:-1条-】
第101天:【取:-0条-】
第102天:【取:-4条-】
第103天:【取:-3条-】
但实际运行的结果是:
A1                                                      
  第99天:【取:-4条-】                                    
  第100天:【取:-1条-】

只显示2天的排序

麻烦你了,是我说明不清楚!
#11
sdta2021-11-30 00:13
剩余的数据自己添加进去吧
#12
甲辰2021-11-30 02:17
回复 9楼 sdta
大神好!不好意思!又要打扰你了!
我把代码修改一下,能把各天的记录按升序排列了,但里面串入了编辑器(EDIT)鼠标移动的说明,不知道是什么原因!代码为:

CREATE CURSOR tt (a1 c(40))
FOR i=1 to ALINES(myarr,thisform.edit3.value)

INSERT INTO tt VALUES (myarr(i))
    SELECT a1, RECNO() nrec FROM tt into cursor aa
endfor
        SELECT a1 FROM aa ORDER BY nrec DESC to file aa.txt

    thisform.edit2.value=filetostr("aa.txt")


若能运算结果直接显示在thisform.edit2.valuek 中,不再保存在aa里面就更好了.
谢谢!

[此贴子已经被作者于2021-11-30 02:19编辑过]

#13
吹水佬2021-11-30 09:46
程序代码:
TEXT TO 测试数据 TEXTMERGE NOSHOW PRETEXT 7
第103天:【取:-3条-
第102天:【取:-4条-
第101天:【取:-0条-
第100天:【取:-1条-
第99天:【取:-4条-
第98天:【取:-4条-
第97天:【取:-2条-
第96天:【取:-3条-
第95天:【取:-2条-
ENDTEXT
WITH _screen
    .AddObject("edit2","editbox")
    .edit2.width = 200
    .edit2.height = 200
    .edit2.value = 测试数据
    .edit2.Visible = 1
    MESSAGEBOX("重排逆序")
    ALINES(arr,.edit2.value)
    .edit2.value = ""
    FOR i=ALEN(arr) TO 1 STEP -1
        .edit2.SelText = arr[i]+0h0D0A
    ENDFOR
    MESSAGEBOX("排序完成")
    .RemoveObject("edit2")
ENDWITH
#14
schtg2021-12-01 06:52
回复 13楼 吹水佬
高!
1