pinkx 发表于 2014-7-22 08:18:46

在VB中Do While Not EOF(1)是什么意思呢?急!

在VB中Do While Not EOF(1)是什么意思呢?急!

汉花唐落 发表于 2014-7-22 08:19:03

1、首先,EOF(x)是一个函数,它的返回的函数值是boolean型:当数据指针指向文件末尾时,它的值为true,当指针未指向文件末尾时它的值为false.函数中的x是一个整型数,代表打开文件时定义的文件号。
    一般eof函数跟读取顺序文件相联系,以防到达文件末尾时还要读取数据而出现错误。使用方法是:先打开文件,每读一个数据后用eof判断是否到了文件末尾,如果不到则继续读取,如果到达结尾(eof()=true)则说明已经到达文件末尾,不存在没有读取的数据了,所以立即停止读取。
    楼主所举的这个例子恰恰是实现这个过程的其中一句。
    2、not eof(1)的含义:“1”表示打开文件时使用的通道号为1#。它的意思是当文件正在读取时,如果指针没有到达结尾,eof(1)=false,根据布尔代数运算规则,not eof(1)的值为true;而当指针到达文件结尾时,not eof(1)的值为false。
    3、do while not eof(1)是一个循环语句,它的循环条件是not eof(1)=true,刚才分析过,这个取值表示指针没有到达文件结尾。而停止循环的条件是not eof(1)=false,这个值只有当指针文件到达尾部时才取得。
    所以,这个循环条件是指:当指针没有到达文件结尾时,继续循环,而一旦指针到达文件结尾,则停止循环。

举一个读取顺序文件的例子吧:
    open d:\a.txt for input as #1
    do while not eof(1)
      input #1,a
    loop
    这样就把文件d:\a.txt 中的数据全部读了一遍。当然读取之后再做什么运算或赋值是还要另外编程解决地。

不知楼主是否看明白了?若不明白可留言,我再详细解释。

zhoruc198318 发表于 2018-11-26 23:21:45

写得比较透彻,楼主辛苦了:victory:
页: [1]
查看完整版本: 在VB中Do While Not EOF(1)是什么意思呢?急!