我们有一些古老的 Delphi 代码(甚至可能起源于 Turbo Pascal 代码)使用{$I-}
, aka ,这使得代码使用IOResult而不是磁盘 I/O 错误的异常。{$
IOCHECKS
OFF}
{$I-}
我想摆脱{$IOCHECKS OFF}
. 这只影响像AssignFile/Reset/Rewrite/Append/CloseFile这样笨拙的旧内置I/O函数吗?或者它是否也会影响更现代的东西,比如 TFileStream?更重要的是,还有什么我没有想到的可能会受到影响?(Delphi Basics建议它也会影响 MkDir 和 RmDir。如果它影响那些,必须有更多。)
Delphi 2007 帮助主题“输入输出检查 (Delphi)”( ms-help://borland.bds5/devcommon/compdirsinput_outputchecking_xml.html
) 指出这会影响“I/O 过程[s]”,并且“I/O 过程在 Delphi 语言指南中进行了描述”。这并没有多大帮助,因为 CodeGear 从未发布过语言指南,而 Borland 上一次发布语言指南是 Delphi 5。
哪些函数和类在 下表现不同{$I-}
?
编辑:接受的答案提供了一些很好的背景,但这里是按字母顺序排列的列表形式的快速摘要:{$IOCHECKS OFF}
仅影响系统单元中的以下例程。
- 附加
- 块读取
- 块写
- 目录
- 关闭文件
- Eof
- 埃伦
- 擦除
- 文件位置
- 文件大小
- 冲洗
- 目录
- 读
- 阅读
- 改名
- 重置
- 改写
- 目录
- 寻找
- 搜索
- 寻根
- 设置LineBreakStyle
- 截短
- 写
- 写