1、Delphi中拷贝文件的几种方法
{方法一:用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;
3、用Delphi实现将纯文本资料转入数据库
在我们日常工作中,常会碰到这样一个难题:一大堆收集好的纯文本格式,比较规整的资料怎样才能将它们分离,转到自己已经建好的数据库中进行管理呢?例如,有一段人事档案资料document.txt,内容如下:
张强,25,助理工程师,
王宏,30,工程师,
李远,45,高级工程师,
要将它转入数据库中,document.db结构如下:
姓名,年龄,职称
怎么办呢?现在通过使用delphi编程,很好地解决了这个难题。Delphi提供了许多功能强大,丰富的字符处理函数和过程,常用的有:
① function Length(S:String):Integer //返回串的长度
② function Copy(S:String; Index,Count: Integer):String
//给出一个字符串中串的拷贝
③ function Pos(Substr:String; S:String); Integer
//查找子串在字符串中的位置
④ Procedure Delete(Var S:String; Index,Count: Integer);
//从一个字符串中去除子串
利用Delphi提供的已有函数和过程