文件操作 (File I/O)

[复制链接]
  1. 文件读写操作/文本文件读写(过时的 Lazarus 文件操作 *不推荐,但可作为了解)

  2. 读取文件时,但不是从控制台(键盘)中读取数据,可以这样:

  3. read (文件变量, 参数列表);  // 文本读取
  4. write (文件变量, 参数列表); // 文本写入

  5. 同样用 readln 和 writeln 文件变量声明如下:

  6. readln // 行读取
  7. writeln // 行写入

  8. var
  9.   ...
  10.   filein, fileout : text; // text 数据类型,指定该文件仅是纯文本形式。

  11. 操作文件时,需要先声明变量,以读取或者写入数据;
  12. 我们需要将磁盘上的文件与变量相关联,可以使用以下2种方式之一,通常:

  13. reset (文件变量, '文件名'); // 文件打开
  14. rewrite (文件变量, '文件名'); // 文件创建

  15. reset 将对打开的文件进行读取或重写。

  16. 使用 reset 操作文件,只能进行 read、readln 操作。
  17. 使用 rewrite 操作文件,只能进行 write、rewrite 操作。


  18. 首先将文件名赋值给一变量,之后调用 reset 或 rewrite

  19. AssignFile (文件变量, '文件名');
  20. reset (文件变量);
  21. 操作系统不同,路径表达方法也不一。

  22. Windows使用反斜杠(如 c:\directory\name.pas),而MacOS、Linux使用斜杠。
  23. 这里你可以直接使用 PathDelim // 跨平台路径分隔符


  24. 操作完成后,你需要关闭它:

  25. CloseFile(文件标识符);

  26. 下面是一个操作文件的示例,程序运行在DOS下,将读取file1.txt内容,写入到file2.txt中。


  27. procedure TForm1.Button1Click(Sender: TObject);
  28. var
  29.    mychar : char; // 字符型变量
  30.    AA, BB : text; // 文本文件变量
  31. begin
  32.    AssignFile (AA, 'file1.txt'); // 关联文件变量与物理文件路径
  33.    reset (AA); // 以只读方式打开现有文件
  34.    AssignFile (BB, 'file2.txt'); // 关联文件变量与物理文件路径
  35.    rewrite (BB); // 创建新文件(覆盖已有文件)
  36.    read (AA, mychar); // 读取数据(不处理换行符)
  37.    write (BB, mychar); // 写入数据(不添加换行符)
  38.    CloseFile(AA); // 关闭文件并释放资源
  39.    CloseFile(BB); // 关闭文件并释放资源
  40. end;

  41. 记得在目录下放一个 file1.txt ,如果没有就会报错!
复制代码