注册 登录
编程论坛 VFP论坛

显示记录超出范围了,请教如何判断指针已经是最后一条记录了呢?

kelp2000 发布于 2022-03-26 19:56, 1613 次点击
k=1
f=2
do while .not.eof()
dime a(10), b(10)
go k
 scatter to a
go f
scatter to b
c=0
for i=3 to 8
if b(i)=a(j)
c=c+1
endif
endf
endf
k=k+1
f=f+1
enddo



明明已经有当到记录底部就结束的,为何还说记录超出范围?
谢谢各位大侠指教。
11 回复
#2
sdta2022-03-26 20:34
K 或 F 的值大于RECCOUNT()的值了
#3
kelp20002022-03-26 20:57
请问如何解决呢?或者如何判断k或f大于reccount()就退出呢?
#4
kelp20002022-03-26 21:01
请问如何解决呢?或者如何判断k或f大于reccount()就退出呢?
#5
kelp20002022-03-26 21:02
如果加一个if判断,就显示嵌套错误。
#6
sdta2022-03-26 21:15
    k=k+1
    f=f+1
    if k>reccount() or f>reccount()
        exit
    endif
enddo
#7
laowan0012022-03-27 08:06
do while .not.eof()
...
go k
先判断文件结束,后面又go k,难保k值不超出范围,楼上的方法就可以判断是否超出范围了

[此贴子已经被作者于2022-3-27 08:18编辑过]

#8
kelp20002022-03-27 09:53
好了,成功了,谢谢大侠们的帮助。
#9
kelp20002022-03-27 14:24
另外有个问题想请教,象这样的小程序可以生成很多数据的,我想问问能不能生成一个空数据表,然后用append blank和replace把每次生成的结果一一写入到空数据表中?尝试了一下do while.not.eof()却不成功,请问这个思路有问题么?
#10
hu9jj2022-03-27 14:46
建议了解一下select语句。
#11
laowan0012022-03-27 16:19
既然想用append blank和replace,那就跟.not.eof()没啥关系
#12
kelp20002022-03-27 16:36
所以我按上面大侠的缺点,写了个if语句判断是否到了最后一条记录,然后算一个结果,append blank加replace,但无法写入文件。
如果没有这个if,新文件的第一条记录可以写,但我希望的是后面所有的结果都能一条条写入文件。


麻烦各位了。
1