前言:
Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。
文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。
1.文件变量与文件名关联:
AssignFile(VarTxt, FileName)
FileName 如果省略路径将默认当前目录。
2.初始化读写有三种方式:
(1) Reset: 只读打开, 指针移到文件头
(2) Rewrite: 创建新文件并打开, 只写
(3) Append: 从尾部追加, 指针当然在文件尾。
文件不存在时使用 Reset 或 Append 会引发一个I/O异常。
最后用 CloseFile 关闭文件。
为保持兼容,Delphi 也允许用户用 Assign 建立关联, 用 Close 关闭文件。
--------------------------------------------------------------------------------
//读写示例:unit Unit1
interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls
type TForm1 = class(TForm) Memo1: TMemo
Button1: TButton
Button2: TButton
Button3: TButton
Button4: TButton
Button5: TButton
Button6: TButton
Button7: TButton
procedure Button1Click(Sender: TObject)
procedure Button2Click(Sender: TObject)
procedure Button3Click(Sender: TObject)
procedure Button4Click(Sender: TObject)
procedure Button5Click(Sender: TObject)
procedure Button6Click(Sender: TObject)
procedure Button7Click(Sender: TObject)
private { Private declarations } public { Public declarations } end
var Form1: TForm1
implementation{$R *.dfm}var F: Text
//TextFile 和 Text 是一样的 FileName: string = 'c:\temp\test.txt'
//写文件procedure TForm1.Button1Click(Sender: TObject)
begin AssignFile(F,FileName)
Rewrite(F)
//会覆盖已存在的文件 Writeln(F, '第一行')
Writeln(F, '第二行')
CloseFile(F)
end
//读文件(先执行写文件)procedure TForm1.Button2Click(Sender: TObject)
var s: string
begin AssignFile(F,FileName)
Reset(F)
//只读打开 Readln(F, s)
//读取 ShowMessage(s)
//显示: 第一行 Readln(F, s)
//继续读取 ShowMessage(s)
//显示: 第二行 CloseFile(F)
end
//追加procedure TForm1.Button3Click(Sender: TObject)
begin AssignFile(F,FileName)
Append(F)
//打开准备追加 Writeln(F, '第三行')
Writeln(F, '第四行')
CloseFile(F)
end
//读取全部(需要Memo帮忙显示)procedure TForm1.Button4Click(Sender: TObject)
var s: string
begin AssignFile(F,FileName)
Reset(F)
//只读打开 Memo1.Clear
while not Eof(F) do begin Readln(F, s)
Memo1.Lines.Add(s)
end
CloseFile(F)
end
//分列写入procedure TForm1.Button5Click(Sender: TObject)
//这个过程级函数的功能是: 用空格把 s 凑够 n 的长度 function AddSpace(s: string
n: Word): string
begin while Length(s) < n do begin s := s + ' '
end
Result := s
end
var name: string[8]
address: string[16]
begin AssignFile(F, FileName)
Rewrite(F)
name := '张三'
name := AddSpace(name,8)
address := '山东泰安'
address := AddSpace(address,16)
Writeln(F, name, address)
name := '李四儿'
name := AddSpace(name,8)
address := '贵州省安顺黄果树'
address := AddSpace(address,16)
Writeln(F, name, address)
name := '王二麻子'
name := AddSpace(name,8)
address := '北京市海淀区'
address := AddSpace(address,16)
Writeln(F, name, address)
CloseFile(F)
{写入的结果是: 张三 山东泰安 李四儿 贵州省安顺黄果树 王二麻子北京市海淀区}end
//分列读取procedure TForm1.Button6Click(Sender: TObject)
var name: string[8]
address: string[16]
begin AssignFile(F, FileName)
Reset(F)
Memo1.Clear
while not Eof(F) do begin Readln(F, name)
Memo1.Lines.Add(name)
end
CloseFile(F)
Reset(F)
while not Eof(F) do begin Readln(F, name, address)
Memo1.Lines.Add(address)
end
CloseFile(F)
{读取结果: 张三 李四儿 王二麻子 山东泰安 贵州省安顺黄果树 北京市海淀区 }end
//不同数据类型的写入和读取procedure TForm1.Button7Click(Sender: TObject)
var name: string[6]
age: Word
birthday: TDate
begin AssignFile(F,FileName)
Rewrite(F)
name := '菜花 '
//加两个空格凑够6个字符 age := 18
birthday := StrToDate(DateToStr(Now-18*365))
//假如她今天过生日 Writeln(F,name,age,birthday)
CloseFile(F)
Reset(F)
Readln(F,name,age,birthday)
Memo1.Clear
Memo1.Lines.Add(name)
Memo1.Lines.Add(IntToStr(age))
Memo1.Lines.Add(DateToStr(birthday))
CloseFile(F)
{读取结果: 菜花 18 1989-12-23}//其实这样的东西应该用类型文件操作更合适, 但如果有这样的文本文件让你读取呢?end
end.
分享到:
相关推荐
### Android平台的txt文本文件读写操作 #### 一、引言 在Android应用程序开发过程中,文本文件(如.txt格式)的读写操作是常见需求之一。这些操作可以帮助开发者存储临时数据、配置信息或者实现简单的文件共享功能...
在进行文本文件读写时,通常需要先打开文件。使用`fopen`函数可以完成这一任务: ```c FILE *fopen(const char *filename, const char *mode); ``` `filename`是文件名,`mode`是操作模式,如"r"(只读)、"w"(写入...
本文将基于给定的标题“WBDC.rar_c text word count_单词检索_文本检索 visual_文本文件读写”和描述,深入探讨相关知识点,包括C语言实现文本文件的读写、单词计数和检索,以及可视化的实现。 首先,让我们关注...
1. **文本文件读写**: 在Python中,我们通常使用内置的`open()`函数来处理文本文件。以读模式('r')打开文件用于读取,写模式('w')用于覆盖写入,追加模式('a')则会在文件末尾添加内容。在PyQt5环境下,虽然...
python 文件读写目录浏览功能类,包括目录浏览,文本文件读写,文本文件计数,编码读写等文本文件功能。还包括的编码的转换.zip
【C#程序设计实验8-文本文件读写】 在C#编程中,处理文本文件是一项基本且重要的任务。本实验的目的是让学生掌握如何在WPF应用程序中实现文本文件的读取和写入操作,同时也涉及到了用户界面的交互。实验采用的是...
总结,WPF中的文本文件读写涉及了System.IO命名空间的基本使用,包括StreamReader、StreamWriter、File类的相关方法。在实际开发中,需要根据需求选择合适的读写方式,并注意异常处理和性能优化,尤其是处理大文件时...
### C语言文本文件读写操作知识点详解 #### 一、引言 在C语言中,进行文件操作是一项基本且重要的技能。本篇文章将基于提供的示例代码,深入讲解如何使用C语言的标准库来实现文本文件的基本读写操作。具体包括`...
python 文件读写目录浏览功能类,包括目录浏览,文本文件读写,文本文件计数,编码读写等文本文件功能。还包括的编码的转换
在Delphi编程环境中,直接读写文本文件是常见的任务,特别是在处理日志、配置文件或数据存储时。本文将深入探讨如何在不依赖Memo控件的情况下实现这一功能,以提高程序的效率和灵活性。 首先,我们需要引入`System....
Qt提供了两种读写纯文本文件的基本方法,一种是用QFile类的IODevice读写功能直接进行读写,另一种是利用QFile和QTextStream结合起来,用流(Stream)的方法进行文件读写。 实例samp7_1演示了这两种方法读写文本文件...
这里我们关注的是一个名为"TextFile"的Java类,它提供了对文本文件进行读写的功能。JavaBean是一种特殊类型的Java类,设计用于数据封装和组件重用,通常遵循特定的命名和编码规范。在这个场景下,`TextFile`可能就是...
在本文中,我们将深入探讨如何使用C#编程语言来实现小程序功能,主要涉及文本文件的读写操作以及对其中特定内容的匹配与替换。C#是Microsoft开发的一种面向对象的编程语言,广泛应用于Windows应用程序、Web应用(如...
对于文本文件读写,我们将主要关注`TFile`、`TStream`和`TextFile`接口。 Delphi提供了几个核心类来处理文件读写,例如`TFileStream`,它继承自`TStream`,允许对文件进行流式操作。另一个常用的组件是`TTextFile`...
文本文件读写的一个关键特点是行结束符,如CRLF(回车换行)在Windows系统中,LF(换行)在Unix/Linux系统中。在跨平台操作时,需要特别注意这些差异。而二进制文件则没有固定的行结束符概念,它直接保存原始数据的...
### C++中的文本文件读写 #### 一、概述 在C++中,对文本文件进行读写是一项基本且常用的功能。本文将详细介绍如何利用C++标准库中的`fstream`来实现文本文件的读写操作。 #### 二、基础知识 在深入探讨文本文件...
总的来说,Delphi中的文本文件读写操作并不复杂,通过TStreamReader和TStreamWriter类可以方便地实现。只要理解基本的文件操作概念和异常处理,你就能轻松应对大部分文件处理需求。在学习过程中,不断实践和调试代码...
根据给定的文件信息,我们将深入探讨Java读写文件文本文件的关键知识点,这些知识点主要集中在文件的读取、写入以及流的复制等操作上。 ### Java读取文本文件 在Java中,读取文本文件通常涉及到使用`InputStream`...