| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2472 人关注过本帖
标题:我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么 ...
只看楼主 加入收藏
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
结帖率:66.67%
收藏
 问题点数:0 回复次数:29 
我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
SELECT fb
a=messagebox("真的要分班吗?",4+32+256,"系统提示")
IF a=6
set filter to xz=alltrim() and zymc=ALLTRIM()
locate for xz=alltrim() and zymc=ALLTRIM()

GO top
do while not eof()
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM(STR(n))
      SKIP
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM(STR(m))
      SKIP
   endfor
ENDDO
   MESSAGEBOX("分班已完成!",64,"系统信息")
   thisform.Release
ELSE
thisform.release

ENDIF
搜索更多相关主题的帖子: 系统 replace 
2012-05-28 10:05
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
以下是引用lifeng123在2012-5-28 10:05:04的发言:

我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
SELECT fb
a=messagebox("真的要分班吗?",4+32+256,"系统提示")
IF a=6
set filter to xz=alltrim() and zymc=ALLTRIM()
locate for xz=alltrim() and zymc=ALLTRIM()

GO top
do while not eof()
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM(STR(n))
      SKIP
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM(STR(m))
      SKIP
   endfor
ENDDO
   MESSAGEBOX("分班已完成!",64,"系统信息")
   thisform.Release
ELSE
thisform.release

ENDIF
在DO whil ……enddo 中以到表尾结束。
在2个FOR……ENDFOR中是每次二十个,而表的记录数不是20的倍数,所以出现你说的问题。
我这样说不知道你理解没有?

只求每天有一丁点儿的进步就可以了
2012-05-28 14:15
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
举个简单的例,表中有36条记录
循环从头走到ENDDO一轮,针到21号,进入2轮,上一个FOR走完,走下一个FOR时,循环未走完,指针到表尾了,于是出错了

只求每天有一丁点儿的进步就可以了
2012-05-28 14:22
zkzcs
Rank: 2
等 级:论坛游民
帖 子:30
专家分:17
注 册:2005-9-25
收藏
得分:0 
do while not eof()把这个改一下
2012-05-28 21:49
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
以下是引用lifeng123在2012-5-28 10:05:04的发言:

我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
SELECT fb
a=messagebox("真的要分班吗?",4+32+256,"系统提示")
IF a=6
set filter to xz=alltrim() and zymc=ALLTRIM()
locate for xz=alltrim() and zymc=ALLTRIM()

GO top
do while not eof()
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM(STR(n))
      SKIP
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM(STR(m))
      SKIP
   endfor
ENDDO
   MESSAGEBOX("分班已完成!",64,"系统信息")
   thisform.Release
ELSE
thisform.release

ENDIF
改为
GO top
do while .T.
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM(STR(n))
      SKIP
      if eof()
        exit
      endif
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM(STR(m))
      SKIP
      if eof()
        exit
      endif
   endfor
ENDDO
2012-05-29 04:54
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
指针每走一步,都进行一次判断,是表尾就跳出循环。
2012-05-29 05:45
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
谢谢!受益匪浅!!!

2012-05-29 08:52
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我想按照50人一个班分,怎么办?不足50人单独分班。

2012-05-29 08:56
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我的思路
STORE 0 to abc   
COUNT for xz=ALLTRIM() and zymc=ALLTRIM() to abc    *首先统计满足的学制、专业人数,例如三年会计电算化多少人
DO case
   CASE abc<=50     *如果人数小于等于50人
       replace bj with ALLTRIM()+ALLTRIM()   
   CASE abc>50     *如果人数大于50人,按50人一个班进行分班,这一步我不太会,请教大家一下!!!
  do while .T.
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM()+ALLTRIM(STR(n))
      SKIP
      if eof()
        exit
      endif
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM()+ALLTRIM(STR(m))
      SKIP
      if eof()
        exit
      endif
   endfor
ENDDO
ENDCASE

2012-05-29 09:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
关键在于你的系统是如何设计的,有时候多增加一个辅助用数据表,可以减少不少编程工作量,使代码一目了然。根据分班原则,编制出符合实际情况的代码。

坚守VFP最后的阵地
2012-05-29 09:38
快速回复:我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019728 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved