在编程的时候我们经常要用到读和写文件.下面介绍几个方法:
{方法一:用File stream }
Procedure FileCopy( 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;
{ 方法二:使用内存块进行读写 }
procedure FileCopy(const FromFile, ToFile: string);
var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, FromFile);
Reset(FromF, 1);
AssignFile(ToF, ToFile);
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;
2、控制INI文件
要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考:
{方法一:用 Windows API 函数}
① 从.INI文件中获取字符串
var
strResult:array[0..30] of Char;
begin
GetPrivateProfileString(’ desktop ’, ’wallpaper’,
’c:\windows\newwall.bmp’ , strResult, 100,
’c:\windows\win.ini’ );
edit1.text:=strResult; //显示取得字符串
end;
② 从.INI文件中获取整数
var
nResult: integer;
begin
nResult := GetPrivateProfileString(’ desktop ’, ’ tilewallpaper’,
0 , ’c:\windows\win.ini’ );
edit1.text:=intostr(nResult); //显示取得整数
end;
③ 向.INI文件写入字符串
WritePrivateProfileString(’desktop’, ’wallpaper’,
strWrite ,’c:\windows\win.ini’);
{ 方法二:使用TiniFile进行读写 }
① 从.INI文件中读字符串
var MyIni: TIniFile;
begin
MyIni := TIniFile.Create(’c:\windows\win.ini’);
edit1.text:=MyIni.ReadString(’Desktop’, ’Wallpaper’, ’’);
end;
② 向.INI文件中写入字符串
var MyIni: TIniFile;
begin
MyIni := TIniFile.Create(’c:\windows\win.ini’);
MyIni.WriteString(’desktop’, ’wallpaper’, ’c:\a.bmp’);
end;