bsp; resultvalue:=false; end else resultvalue:=true;
if resultvalue then begin
filestream_ok:=TFileStream.create(ExtractFilePath(paramstr(1))+inifile.ReadString(''''file1'''',''''filename'''',''''wnhoo.zzz''''),fmCreate); try OutStream.Position :=0; filestream_ok.CopyFrom(OutStream,inifile.ReadInteger(''''file1'''',''''filesize'''',0)); finally filestream_ok.Free ; end;
end;
inifile.Free; finally //删除临时INI文件 deletefile(ExtractFilePath(paramstr(0))+''''tmp.in_''''); end; // finally OutStream.free; end; finally inStream.free; end; except resultvalue:=false ;
end; result:=resultvalue; end;
//自解压创建 procedure tmyzip.zjywj(var filename:string); var myRes: TResourceStream;//临时存放自解压EXE文件 myfile:tfilestream;//原文件流 xfilename:string;//临时文件名称 file_ok:tmemorystream; //生成文件的内存流 filesize:integer; //原文件大小 begin if FileExists(filename) then begin //创建内存流 file_ok:=tmemorystream.Create ; //释放资源文件-- 自解压EXE文件 myRes := TResourceStream.Create(Hinstance, ''''myzjy'''', Pchar(''''exefile'''')); //将原文件读入内存 myfile:=tfilestream.Create(filename,fmOpenRead); try
myres.Position:=0; file_ok.CopyFrom(myres,0); file_ok.Seek(0,sofromend); myfile.Position:=0; file_ok.CopyFrom(myfile,0); file_ok.Seek(0,sofromend); filesize:=myfile.Size; file_ok.WriteBuffer(filesize,sizeof(filesize)); file_ok.Position:=0; xfilename:=ChangeFileExt(filename,''''.exe'''') ; file_ok.SaveToFile(xfilename);
finally myfile.Free ; myres.Free ; file_ok.Free ;
end; DeleteFile(filename); filename:=xfilename;
end; end;
//#####################################################
destructor Tmyzip.Destroy; begin
inherited Destroy; end; end.
3 、结束语 Delphi的全新可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。对于程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率。在delphi中可以很方便的利用流实现文件处理、动态内存处理、网络数据处理等多种数据形式,写起程序也会大大提高效率的。
参考文献: 1、DELPHI系统帮助 2、冯志强. Delphi 中压缩流和解压流的应用 3、陈经韬.谈Delphi编程中“流”
上一页 [1] [2] [3] |