Delphi 繼承 Object Pascal 支持三種文件類型:文本文件、記錄文件、無類型文件。
聲明:var TextFileVar: Text;
特點:以行為單位順序讀寫,行長不固定無法隨機訪問;同一時刻只能單獨為讀或寫打開,不支持同時讀寫。
兩步驟:① AssignFile(TextFileVar, FileName) 關聯文件名(支持全路徑或相對路徑);② 初始化讀寫模式:
Reset:讀模式打開,指針指向文件首Rewrite:寫模式創建新文件(覆蓋同名)Append:寫模式打開現有文件,指針定位文件尾(僅文本文件)Reset/Append 針對不存在文件會引發 I/O 異常。關閉文件調用 CloseFile。雖然程序退出自動關閉,但手動關閉可確保釋放句柄、增強可移植性。為兼容性保留 Assign/Close。
Read/Readln 假定數值以空格分隔,非逗號/分號。例:100 200 300 可讀,100 200, 300 會讀入 "200," 導致轉換異常。Mon 12:10 40 50 需 read(TextFileVar, Day, c, Time, Num1, Num2),c 為臨時字符變量吸收冒號。與 TMemo 控件關聯:Memo1.Lines.LoadFromFile(TextFileName) 載入,編輯後 Memo1.Lines.SaveToFile 保存,極其便捷。
聲明:var RecordFileVar: file of RecordType;(RecordType 為自定義記錄類型)。
優勢:允許同時讀寫打開;記錄長度固定,支持隨機存取(Seek 定位)。詳細操作見下節實例。
提供底層 I/O 通道,用於變長記錄文件,常用於文件複製。因 Delphi 提供更好方法(見 6.4 節),較少使用。有興趣可查 BlockRead/BlockWrite。
| 過程/函數 | 功能 | 備註 |
|---|---|---|
| AssignFile | 關聯外部文件名與文件變量 | 替代舊式 Assign |
| Reset | 打開現有文件 | 指針至文件首 |
| Rewrite | 創建並打開新文件 | 覆蓋同名文件 |
| Append | 添加模式打開文件 | 僅文本文件,指針至文件尾 |
| CloseFile | 關閉打開的文件 | 替代舊式 Close |
| FileOpen | 打開文件返回句柄 | 系統內部/文件複製常用 |
| FileCreate | 創建文件返回句柄 | 同上 |
| FileClose | 關閉指定句柄文件 | 同上 |
後三者操作對象為文件句柄而非文件變量,主要供系統內部及文件複製編程使用。