//----------------------------------------------------//
// TXT文件操作 //
//----------------------------------------------------//
procedure TForm1.Button1Click(Sender: TObject);//读操作
var
MyTextFile: TextFile;
s: string;
j: Integer;
sDir: string;
begin
sDir := ExtractFilePath(paramstr(0)) + 'Test.txt';
//关联文件
AssignFile(MyTextFile,Sdir);
//判断文件是否存在
if FileExists(sDir) then
//以只读方式打开文本
Reset(MyTextFile)
else
Raise Exception.Create('文件不存在!');
try
while not eof(MyTextFile) do
begin
Readln(MyTextFile,s);
Memo1.Lines.Add(s );
end;
finally
CloseFile(MyTextFile);
end;
end;
procedure TForm1.Button2Click(Sender: TObject); //写操作
var
MyTextFile: TextFile;
s: string;
i: Integer;
sDir: string;
begin
sDir := ExtractFilePath(paramstr(0)) + 'Test.txt';
//关联文件
AssignFile(MyTextFile,Sdir);
//覆盖或创建新文件
ReWrite(MyTextFile);
//写文件
s := Memo2.Text;
//WriteLn(MyTextFile,s);(两种演示)
//{
s:='This is Line #';
for i := 1 to 5 do
WriteLn(MyTextFile,s,i,'接着此行继续写的文件');
//}
CloseFile(MyTextFile);
end;
procedure TForm1.Button3Click(Sender: TObject);//追加操作
var
MyTextFile: TextFile;
s: string;
i: Integer;
sDir: string;
begin
sDir := ExtractFilePath(paramstr(0)) + 'Test.txt';
//关联文件
AssignFile(MyTextFile,sDir);
if FileExists(sDir) then
Append(MyTextFile)
else
raise Exception.Create('文件不存在!');
try
for i := 6 to 10 do
begin
s := 'another#';
Writeln(MyTextFile,s,i);
end;
finally
CloseFile(MyTextFile);
end;
end;
//----------------------------------------------------//
// INI文件操作 (Myinifile: TInifile;) //
//----------------------------------------------------//
procedure TForm1.BitBtn1Click(Sender: TObject); //读操作
var
SFileName: string;
begin
{将配置文件 参数读出显示在edit}
SFileName := ExtractFilePath(paramstr(0)) + 'MyTest.ini';
if not FileExists(SFileName) then
raise Exception.Create('文件不存在!')
else
begin
Myinifile := TIniFile.Create(SFileName);
edit2.Text := Myinifile.ReadString('小节名一','关键字1','');
edit3.Text := Myinifile.ReadString('小节名一','关键字2','');
edit4.Text := Myinifile.ReadString('小节名二','关键字1','');
myinifile.Free;
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);//写操作
var
SFileName: string;
begin
{将配置文件 参数读出显示在edit}
SFileName := ExtractFilePath(paramstr(0)) + 'MyTest.ini';
Myinifile := TIniFile.Create(SFileName);
Myinifile.WriteString('小节名一','关键字1',edit2.Text);
Myinifile.WriteString('小节名一','关键字2','关键字2的内容');
Myinifile.WriteString('小节名二','关键字1',edit4.Text);
myinifile.Free;
end;
//----------------------------------------------------//
// 无类型文件操作 //
// procedure BlockRead(var F: File; var Buf;Count: Integer[;var AmtTransferred: Integer]);
// procedure BlockWrite(var F: File;var Buf;Count: Integer[;var AmtTransferred: Integer]);
// F:无类型文件变量;Buf读出或写入数据的缓冲区变量;Count本次操作读写记录数量;实际读出、写入记录数目
//----------------------------------------------------//
procedure TForm1.Button1Click(Sender: TObject); //写
var
UnTypeFile: file;
Buffer: array[0..127] of Byte;
NumWrite: Integer;
begin
AssignFile(UnTypeFile,'MyFile.dat');
if FileExists('MyFile.dat') then
Reset(UnTypeFile)
else
ReWrite(UnTypeFile);
try
Seek(UnTypeFile,FileSize(UnTypeFile));
FillChar(Buffer,Sizeof(Buffer),'F');
BlockWrite(UnTypeFile,Buffer,1,NumWrite);
finally
CloseFile(UnTypeFile);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);//读
var
UnTypeFile: file;
Buffer: array[0..127] of Byte;
NumRead: Integer;
s: string;
i: Integer;
begin
AssignFile(UnTypeFile,'MyFile.dat');
Reset(UnTypeFile);
try
BlockRead(UnTypeFile,Buffer,1,NumRead);
finally
CloseFile(UnTypeFile);
end;
end;
//----------------------------------------------------//
// 文件的复制 (两种方式) //
//----------------------------------------------------//
1.利用文件流拷贝文件
procedure FileCoyeA(const SourceFileName,TargetFileName: string);
var
S,T: TFileStream;
begin
S := TFileStream.Create(SourceFileName,fmOpenRead);//创建源文件的文件流
try
T := TFileStream.Create(TargetFileName,fmOpenWrite or fmCreate);//创建目标文件的文件流
try
T.CopyFrom(S,S.Size); //拷贝
finally
T.Free;//释放文件流
end;
finally
S.Free;
end;
end;
2.利用内存块拷贝文件
procedure FileCopyB(Const FromFile,ToFile: string);
var
FromF,ToF: file;
NumRead,NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF,'MyFile.dat'); //关联源文件
Reset(FromF,1);//打开文件,每次只读一个字节
AssignFile(ToF,'file2.dat');
ReWrite(ToF,1);
repeat //循环读写
BlockRead(FromF,Buf,Sizeof(Buf),NumRead);
BlockWrite(ToF,Buf,Numread,NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF); //关闭文件
CloseFile(ToF);
end;
文件的操作
最新推荐文章于 2024-08-31 15:18:37 发布