关于文件尾的判断,一个简单的问题。

liuyb 2002-04-01 02:08:31
代码如下:
var filet:textfile;
begin
assignfile(filet,'sy.txt');
rewrite(filet);
while not eof(filet) do//运行到此出错
begin
//doing
end;
end;

出错提示为“I/O error 104.”。
不知为何?
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyb 2002-04-04
  • 打赏
  • 举报
回复
谢谢各位的回答,结分。
jiangfangji 2002-04-03
  • 打赏
  • 举报
回复
If F is a text file, F becomes write-only.

After calling Rewrite, Eof(F) is always True.
kinggo 2002-04-03
  • 打赏
  • 举报
回复
那是你的sys.txt不存在
liuyb 2002-04-03
  • 打赏
  • 举报
回复
To:colacoca(我是一瓶倒过来的可口可乐)
谢谢你给的这么多注解,但是ReWrite()不是创建了新的文件吗?Eof()只不过是判断文件尾,应该不会出错才是吧?
希望得到各位的指正。
colacoca 2002-04-02
  • 打赏
  • 举报
回复
运行时的错误分为以下三类:
* I/O错误:错误编号为100-149
编号 说明
---------------------------------------------------------
100 磁盘读错误,若要对超过格式文件尾进行读取时
101 磁盘写错误,若磁盘满时,由CloseFile,Write,Writeln或Flush报告
102 没有指定文件,若文件变量没有由Assign或AssignFile赋值,由Reset,Rewrite,Append,Rename和Erase报告
103 文件没有打开,若文件未打开,由CloseFile,Read,Write,Seek,Eof,FilePos,FileSize,Flush,BlockRead或BlockWrite报告
104 输入文件未打开,由Read,Readln,Eof,Eoln,SeekEof或SeekEoln报告有关输入的文本文件未打开
105 输出文件未打开,由Write和Writeln报告有关文本文件没有用Console应用程序生成
106 无效的数据格式,由Read或Readln报告从文本文件读取的数据格式不正确

liuyb 2002-04-02
  • 打赏
  • 举报
回复
哪位大侠能帮一下忙?
liuyb 2002-04-01
  • 打赏
  • 举报
回复
当我改变文件类型的定义后,却是可以通过的,为什么呢?
如文件类型的定义改为:
var filet:file of char;
哪位前辈知道,望能告知。
liuyb 2002-04-01
  • 打赏
  • 举报
回复
可是文件清空后,文件的当前位置应该是文件尾才对啊,为什么不对呢?
chechy 2002-04-01
  • 打赏
  • 举报
回复
rewrite表示重新写文件,此时文件已经清空,所以eof当然要出错。
如果是读文件,应该是reset(filet);

5,533

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧