求代码(优),我写的太慢
求代码:1.读取zong.DBF中每一条记录,别到'结果表.DBF'中分别统计出'分数,胜率,胜,和,负,'然后回zong.DBF中 填入'分数,胜率,胜,和,负';填好后形如'回合1.DBF'.我写的代码太慢,求好代码!谢谢!!
2.根据zong.DBF每一条记录的分数,A:计算分数最多的前3种走法;B:按照分数+胜率算出较好的前3种走法!!
祝大家快乐!!
求代码1.rar
(498.76 KB)
****************ZYL SET TALK off 路径=SYS(5)+SYS(2003) SET PATH TO 路径 &&&&&=SYS(5)+SYS(2003) set safe off &&改写文件不提示! ******************************** *第1步:列出44种走法,每步3秒3分钟完成! *********************************************** USE 第1步 If Type("第1步.分数")='U' &&一定要带表名,因为如果表字段不存在,但变量或对象却有这个名称,所以要加上表名 alter table 第1步 add 分数 N(6) add 胜率 N(6,2) add 胜 N(6) add 和 N(6) add 负 N(6) &&编程方式增加字段 ***ELSE 多余 ENDIF **CLOSE ALL *USE 上面已经关闭所有表了,这没用 ** 为什么把表关了又开? USE 第1步 blank fields 分数, 胜率, 胜, 和, 负 all *brow *RETURN ***************************************************以上是对要操作的表的字段判断是否存在,想要增加的字段,如果有就跳出,把字段清空!! * 为什么要关闭?[color=#0000FF]CLOSE DATA[/color] xx=0 &&胜负结果未知 hongsheng=0 &&红胜 heju=0 &&和棋 heisheng=0 &&黑胜 fenshu=0 &&分数 shenglv=0 &&胜率= *SELECT 2 *USE 第1步 *SELECT 1 USE 结果表 IN 0 SELECT 第1步 &&这样不用记工作区号 GO top DO WHILE EOF() && Beginning of loop * [color=#0000FF]IF EOF( )多判断[/color] * [color=#0000FF]EXIT[/color] * ENDIF ss1=LEFT(ALLTRIM(name10),12) SELECT 结果表 &&这样不用记工作区号 COUNT FOR LEFT(ALLTRIM(name10),12)=ss1.and.RIGHT(ALLTRIM(name9),4)='未知' TO xx COUNT FOR LEFT(ALLTRIM(name10),12)=ss1.and.RIGHT(ALLTRIM(name9),4)='红胜' TO hongsheng COUNT FOR LEFT(ALLTRIM(name10),12)=ss1.and.RIGHT(ALLTRIM(name9),4)='和棋' TO heqi COUNT FOR LEFT(ALLTRIM(name10),12)=ss1.and.RIGHT(ALLTRIM(name9),4)='黑胜' TO heisheng *!* ?xx 不要显示这些 *!* ?hongsheng *!* ?heqi *!* ?heisheng *!* ?'分数:' *!* ?'胜率: ' SELECT 第1步 &&这样不用记工作区号 REPLACE 胜 WITH hongsheng &&因为是'1回合'所以现在显示的应该是'黑棋' 走这步棋的胜利数! REPLACE 负 WITH heisheng REPLACE 分数 WITH hongsheng*2 REPLACE 胜率 WITH hongsheng/(heisheng+hongsheng)*100 xx=0 &&胜负结果未知 hongsheng=0 &&红胜 heju=0 &&和棋 heisheng=0 &&黑胜 fenshu=0 &&分数 shenglv=0 &&胜率= SKIP ENDDO && End of loop CLOSE ALL retu