//打开源文件代码:
procedure tform1.speedbutton1click(sender:tobject);
begin
if opendialog1.execute
then
edit1.text:=opendialog1.filename;
end;
//保存目录文件代码:
procedure tform1.speedbutton2click(sender:tobject);
begin
if savedialog1.execute then
edit2.text:=savedialog1.filename;
end;
//这个是对打开的目标文件进行读取的代码:
procedure tfrom1.bitbtn1click(sender:tobject);
var
file1,file2:file;
fbuf:array[0..1024] of byte;//存储地址
f,i:integer;
begin
if(edit1.text='')or (edit2.text='') then
//源文件名字放在edit1中,目标文件名字放在edit2中
showmessage('请选择复制文件的名称')
else
begin
i:=0;
assignfile(file1,edit1.text);//文件变量file1与源文件建立联系
assignfile(file2,edit2.text);//文件变量file2与目标文件建立联系
reset(file1,1); //以读的方式打开源文件
rewrite(file2,1);//以写的方式打开目标文件
bitbtn1.enable:=false;
try
//将文件的大小设为Progressbar1组件的最大值
progressbar1.max:=(filesize(file1)*2 div sizeof(fbuf));
while f>=sizeof(f) do
begin
blockread(file1,fbuf,sizeof(fbuf),f);//将文件中的数据读取到缓冲区
blockwrite(file2,fbuf,f,f);//将缓冲区的数据读入到文件中
progressbar1.position:=progressbar1.position+1;//滚动进度条
application.processmessage;
end;
finally
bitbtn1.enable:=true;
progressbar1.position:=0;
closefile(file1);//关闭数据文件,并释放file1变量
closefile(file2);//关闭数据文件,并释放file2变量
end;
end;
end;