Delphi的文本文件操作类源码
来源:互联网 发布:windows 10 whql 编辑:程序博客网 时间:2024/05/10 07:22
一个不完整的类TSafTextFile,实现了对TextFile的基本读写功能,欢迎同仁们完善和补充。
//********************************************************************
//
// Name : Sinoprise Function Library For Delphi
//
//Author : Shuguang Yin
// Sinoprise Technology Lab
//Create : 2005-11-15
//
// Official WebSite : http://www.sinoprise.com
// Sinoprise Technology Community : http://www.usenix.cn
//
//********************************************************************
unit SAF_TextUnit;
interface
uses
windows,SysUtils;
const
SAF_OPEN_FILE_RESULT_OK = 0; //0 正常
SAF_OPEN_FILE_RESULT_FILE_EXIST = -1; //-1 文件已经存在
SAF_OPEN_FILE_RESULT_FILE_NOT_EXIST = -2;//-2 文件不存在
SAF_OPEN_FILE_RESULT_CREATE_FILE_ERROR = -3;//-3 创建文件失败
SAF_OPEN_FILE_RESULT_OPEN_FILE_ERROR = -4;//-4 打开文件失败
SAF_OPEN_FILE_RESULT_FILE_ALREADY_OPEN = -5;//-5 文件已经打开
SAF_OPEN_FILE_RESULT_UNKNOWN_ERROR = 1;//未知的错误
type
TSafOpenFileOpt = (
sofFileCreate, //创建文件,当文件存在时出错
sofFileOpenReadOnly, //以只读方式打开,当文件不存在时出错
sofFileOpenReadWrite, //打开文件,当文件不存在时出错
sofFileOpenCreate, //当文件存在时,打开文件,当文件不存在时创建文件
sofFileAppendOnly, //打开文件准备添加数据,如果文件不存在,则报错
sofFileAppendCreate,//当文件存在时,以追加的方式打开文件,当文件不存在时创建文件
sofFileRewriteCreate//当文件存在时,覆盖文件,当文件不存在时创建文件
);
ESafTextFileExcetpion = class(Exception)
private
FErrorCode: integer;
FDescribe: string;
FFileName: string;
FOpenFileOption: TSafOpenFileOpt;
public
property OpenFileOption : TSafOpenFileOpt read FOpenFileOption;
property FileName : string read FFileName;
property ErrorCode : integer read FErrorCode;
property Describe : string read FDescribe;
constructor Create(fn:string;ofo:TSafOpenFileOpt;ec:integer;des:string );
end;
TSafTextFile = class
private
FTextFile:TextFile;
FFileName: string;
FOpenFileOption: TSafOpenFileOpt;
FFileOpen : boolean;
function GetSeekEOF: boolean;
function GetSeekEOL: boolean;
public
Function ReadLine:string;
Procedure WriteLine(value:string);
Function Read:string;
Procedure Write(value:string);
//返回值:
//>0 正确移动的行数
//=0 文件当前指针未移动
function MoveNextLines(nMvLines:integer=1):integer;
//文件是否结束
property EOF : boolean read GetSeekEOF;
//行是否结束
property EOL : boolean read GetSeekEOL;
//打开文件时的参数
property OpenFileOption : TSafOpenFileOpt read FOpenFileOption;
//文件名
property FileName : string read FFileName;
//此函数,当文件存在时,打开文件,文件不存在时,创建文件
constructor Create(AFileName:string;openopt:TSafOpenFileOpt);
destructor Destroy;override;
end;
implementation
{ TSafTextFile }
constructor TSafTextFile.Create(AFileName: string;openopt:TSafOpenFileOpt);
var
fexist : boolean;
begin
AssignFile(FTextFile,AFileName);
FFileName:=AFileName;
FOpenFileOption:=openopt;
FFileOpen := false;
fexist := FileExists(AFileName);
case openopt of
//创建文件,当文件存在时出错
sofFileCreate: begin
if fexist then begin
raise ESafTextFileExcetpion.Create(FFileName,FOpenFileOption,
SAF_OPEN_FILE_RESULT_FILE_EXIST,'文件已经存在');
end;
rewrite(FTextFile);
end;
//以只读方式打开,当文件不存在时出错
sofFileOpenReadOnly: begin
if not fexist then begin
raise ESafTextFileExcetpion.Create(FFileName,FOpenFileOption,
SAF_OPEN_FILE_RESULT_FILE_NOT_EXIST,'文件不存在');
end;
Reset(FTextFile);
end;
//打开文件,当文件不存在时出错
sofFileOpenReadWrite:begin
if not fexist then begin
raise ESafTextFileExcetpion.Create(FFileName,FOpenFileOption,
SAF_OPEN_FILE_RESULT_FILE_NOT_EXIST,'文件不存在');
end;
rewrite(FTextFile);
end;
//当文件存在时,打开文件,当文件不存在时创建文件
sofFileOpenCreate:begin
rewrite(FTextFile);
end;
//打开文件准备添加数据,如果文件不存在,则报错
sofFileAppendOnly:begin
if not fexist then begin
raise ESafTextFileExcetpion.Create(FFileName,FOpenFileOption,
SAF_OPEN_FILE_RESULT_FILE_NOT_EXIST,'文件不存在');
end;
append(FTextFile);
end;
//当文件存在时,以追加的方式打开文件,当文件不存在时创建文件
sofFileAppendCreate: begin
if fexist then
append(FTextFile)
else
rewrite(FTextFile);
end;
//当文件存在时,覆盖文件,当文件不存在时创建文件
sofFileRewriteCreate:begin
rewrite(FTextFile);
end;
end;
FFileOpen := true;
end;
destructor TSafTextFile.Destroy;
begin
if FFileOpen then CloseFile(FTextFile);
inherited;
end;
function TSafTextFile.GetSeekEOF: boolean;
begin
result := SeekEof(FTextFile);
end;
function TSafTextFile.GetSeekEOL: boolean;
begin
result := SeekEoln(FTextFile);
end;
function TSafTextFile.Read: string;
begin
System.Read(FTextFile,Result);
end;
function TSafTextFile.ReadLine: string;
begin
System.Readln(FTextFile,Result);
end;
function TSafTextFile.MoveNextLines(nMvLines: integer): integer;
var
i : integer;
begin
Result := 0;
for i:=1 to nMvLines do begin
if self.EOF then exit;
ReadLn(FTextFile);
inc(Result);
end;
end;
procedure TSafTextFile.Write(value:string);
begin
System.Write(FTextFile,value);
end;
procedure TSafTextFile.WriteLine(value:string);
begin
System.WriteLn(FTextFile,value);
end;
{ ESafTextFileExcetpion }
constructor ESafTextFileExcetpion.Create(fn: string; ofo: TSafOpenFileOpt;
ec: integer; des: string);
begin
FErrorCode:=ec;
FDescribe:=des;
FFileName:=fn;
FOpenFileOption:=ofo;
inherited Create(FDescribe);
end;
end.
简单的示例:
procedure .......
var
t : TSafTextFile;
begin
try
t := TSafTextFile.Create('c:/SafTextFile.txt',sofFileOpenCreate);
try
t.DoSomeThing()
finally
t.Free;
end;
except
on e:ESafTextFileException Do begin
ShowMessage(IntToStr(e.ErrorCode)+':'+e.Describe);
end;
end
end;
- Delphi的文本文件操作类源码
- Delphi的文本文件操作类源码
- Delphi文本文件的写操作
- delphi 方便的文本文件操作(TEXT)
- delphi操作文本文件简介
- 对文本文件操作很好的类
- 对文本文件操作很好的类
- 对文本文件操作很好的类
- 对文本文件操作很好的类(PHP)
- C#文本文件的操作
- 文本文件的操作
- PHP文本文件操作类
- Ini文本文件操作类
- 文本文件操作类
- Delphi判断文本文件的编码格式
- Delphi判断文本文件的编码格式
- delphi保存读取utf-8的文本文件
- Delphi 判断文本文件的编码格式
- 在MasterPage中使用javascript获取对象
- 用rdesktop链接windows的远程桌面
- 无法打开.msc文件的解决方法
- Java Serializable
- 什么是Extreme Programming(极限编程,简称XP)
- Delphi的文本文件操作类源码
- md5概述
- 在dotnet中操作INI文件
- 取得Access自动编号值
- 我来了
- MYSQL 触发器
- 電雷和飛鳥,你們之間到底是什麽關係?
- 三十六计之围魏救赵(第二计)
- AIX下oracle的安装和配置