主题:FOR ENDFOR 嵌套错误
pupil
[专家分:0] 发布于 2008-10-06 16:08:00
请各位老师指点:
我有一个FOR ***** ENDFOR 循环,是一个记录转入程序,内中开头有一段程序,是用于判断记录是否已经输入的,如果已输入,则用EXIT 退出FOR*****ENDFOR 循环.因这个日期检查程序有十多句,为了使FOR*****ENDFOR 简洁,直观些,我将此段判断程序,改为一个子程序放在主程序最后.主程序中就是一句:DO CHECKDATE 但这样,当在子程序执行到EXIT时,这提示"嵌套错误",如果将它放回主程序,则没有问题!这样如何处理? 多谢!
回复列表 (共8个回复)
沙发
hw2007name [专家分:4790] 发布于 2008-10-06 17:12:00
把你的代码发上来看一下!
板凳
pupil [专家分:0] 发布于 2008-10-06 18:28:00
谢谢一楼老师的支持.代码如下:
SELE FileList &&&&&&待输入"指数行情"文件名列表
FOR i=1 TO Min(2,RECCOUNT())
****************从此到下为判别此日期的数据是否已输入
CheckFie=IIF(FileList.市场='SH','SH000001','SZ399001')
IF !USED(CheckFie)
USE (CheckFie) IN 0 ORDER TAG 日期
ENDIF
SELECT (CheckFie)
SEEK FileList.日期
IF FOUND()
COPY FILE mdir+'inputdata\'+ALLTRIM(FileList.文件名) TO mdir+'wait\'+ALLTRIM(FileList.文件名)
COPY FILE mdir+'inputdata\'+StatFile TO mdir+'Wait\'+StatFile
DELETE FILE mdir+'inputdata\'+ALLTRIM(FileList.文件名)
DELETE FILE mdir+'inputdata\'+StatFile
? ALLTRIM(FileList.文件名)+':行情数据已录入,此文件已转入待处理目录'
EXIT
ENDIF
********以下为数据录入
*
*
SELE FileList &&&转行情文件名列表
SKIP
EDNFOR
3 楼
hw2007name [专家分:4790] 发布于 2008-10-06 20:15:00
你手误输入错误:
ENDFOR 写成 EDNFOR
4 楼
pupil [专家分:0] 发布于 2008-10-06 22:09:00
谢谢三楼老师的指正.!
对不起,我在这里写代码时,将最后一个ENDFOR写错了,但我在程序中是没有写错的!不知道问题出在哪里???
5 楼
CCB2000 [专家分:690] 发布于 2008-10-07 14:47:00
这样肯定是错误的,你的子程序中没有FOR ... ENDFOR,何来EXIT?
6 楼
pupil [专家分:0] 发布于 2008-10-07 16:14:00
谢谢五楼老师指点!
也就是说我没有办法将这一段程序做成子程序?
7 楼
qjbzjp [专家分:8830] 发布于 2008-10-07 18:16:00
在子程序中不要放EXIT,用一个逻辑变量来代替:
publ foudkg
foudkg=.f.
在for……循环中检查foudkg 来决定是否跳出。
8 楼
pupil [专家分:0] 发布于 2008-10-07 20:47:00
谢谢七楼老师指点!!!多谢!
我来回复