回 帖 发 新 帖 刷新版面

主题:FOR ENDFOR 嵌套错误

请各位老师指点:
   我有一个FOR ***** ENDFOR 循环,是一个记录转入程序,内中开头有一段程序,是用于判断记录是否已经输入的,如果已输入,则用EXIT 退出FOR*****ENDFOR 循环.因这个日期检查程序有十多句,为了使FOR*****ENDFOR 简洁,直观些,我将此段判断程序,改为一个子程序放在主程序最后.主程序中就是一句:DO CHECKDATE 但这样,当在子程序执行到EXIT时,这提示"嵌套错误",如果将它放回主程序,则没有问题!这样如何处理? 多谢!

回复列表 (共8个回复)

沙发

把你的代码发上来看一下!

板凳


谢谢一楼老师的支持.代码如下:
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 楼

你手误输入错误:
ENDFOR 写成 EDNFOR

4 楼

谢谢三楼老师的指正.!
对不起,我在这里写代码时,将最后一个ENDFOR写错了,但我在程序中是没有写错的!不知道问题出在哪里???

5 楼

这样肯定是错误的,你的子程序中没有FOR ... ENDFOR,何来EXIT?

6 楼

谢谢五楼老师指点!
也就是说我没有办法将这一段程序做成子程序?

7 楼

在子程序中不要放EXIT,用一个逻辑变量来代替:
publ foudkg
foudkg=.f.
在for……循环中检查foudkg 来决定是否跳出。

8 楼

谢谢七楼老师指点!!!多谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册