檔案的分割與合併 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
最近因為自己 NoteBook 的網路卡怪怪的,在 2K 下就是不 work! 使得在廠商那裝機、更新程式都得使用磁片來更新,而程式愈寫愈大,一片小小的 1.44MB 又如何裝的下... 又因裝機的系統不可能再裝其他的工具程式,如 WinZIP 或 WinRAR 等有分片壓縮的功能,只能使用該 IPC 上的 WinXP 內建的 ZIP 功能...
為使更新程式、資料方便,於是寫一個小小的工具用來「分割」及「合併」檔案。這個小工具使用 BCB5 開發,主要使用 TMemoryStream 來分割及合併檔案,可以算是 TMemoryStream 的應用教學吧
使用 ><>< src="http://www.taconet.com.tw/dllee/gif/dlleebn.gif"> C及指標教學
http://coolsite.to/dllee | 介紹Shells
http://coolsite.to/ushells | |
procedure TForm1.Button1Click(Sender: TObject); var FileStream,BakFileStream : TMemoryStream; FSize, i: Integer ; begin //Split FileStream := TMemoryStream.Create ; try FileStream.LoadFromFile('F:\test\BackProg.exe'); FileStream.Position := 0 ; FSize := FileStream.Size ; I := 0 ; while true do begin inc(i); if (FileStream.Size - FileStream.Position >= 402400) and ((FileStream.Size - FileStream.Position) > 0)then begin with TMemoryStream.Create do begin try CopyFrom(FileStream,402400); SaveToFile('F:\test\testSTr' inttostr(i)); finally Free ; end; end; end else if (FileStream.Size - FileStream.Position > 0) then begin with TMemoryStream.Create do begin try CopyFrom(FileStream,FileStream.Size - FileStream.Position); SaveToFile('F:\test\testSTr' inttostr(i)); finally Free ; end; end; end else Break ; end ; finally FreeandNil(FileStream); end; end; procedure TForm1.Button2Click(Sender: TObject); var FileStream,BakFileStream : TMemoryStream; FSize, i: Integer ; Begin //BtnMergeClick FileStream := TMemoryStream.create ; try i := 0; inc(i); // 取得來源的檔案 while FileExists('F:\test\testSTr' inttostr(i)) do begin BakFileStream := TMemoryStream.Create ; with BakFileStream do begin try LoadFromFile('F:\test\testSTr' inttostr(i)); Position := 0 ; FileStream.CopyFrom(BakFileStream,BakFileStream.Size) finally Free ; end; end; inc(i); end; finally FileStream.SaveToFile('F:\test\test.exe'); FileStream.Free; end; end ;---------------------- 一切有為法 如夢幻泡影 如露亦如電 應做如是觀 ----------------------
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |