拷貝檔案又要修改資料, 怎麼做才會快? |
答題得分者是:jow
|
Arnor
一般會員 發表:28 回覆:29 積分:16 註冊:2006-10-28 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
幾種做法供你參考
因為沒有實際檔案測試 請依需要自行修改 [code delphi] //文字檔 procedure TfrmMain.Button1Click(Sender: TObject); var L: TStringList; begin if FileExists('SOURCE') then begin L := TStringList.Create; try L.LoadFromFile('SOURCE'); L.Delete(0); L.Delete(0); L.SaveToFile('DESTINATION'); finally FreeAndNil(L); end; end; end; //Bianry File: record by record procedure TfrmMain.Button2Click(Sender: TObject); type T_r = packed record A: Integer; B: Integer; end; var M,N: TMemoryStream; r: T_r; begin if FileExists('SOURCE') then begin M := TMemoryStream.Create; try M.LoadFromFile('SOURCE'); N := TMemoryStream.Create; try M.Seek(SizeOf(r)*2,0); while M.Position N.Write(r,SizeOf(r)); N.SaveToFile('DESTINATION'); finally FreeAndNil(N); end; finally FreeAndNil(M); end; end; end; //Bianry File: batch write procedure TfrmMain.Button3Click(Sender: TObject); type T_r = packed record A: Integer; B: Integer; end; var M,N: TMemoryStream; p: Pointer; begin if FileExists('SOURCE') then begin M := TMemoryStream.Create; try M.LoadFromFile('SOURCE'); p := Pointer(Integer(M.Memory) SizeOf(T_r)*2); N := TMemoryStream.Create; try N.Write(p^,M.Size-SizeOf(T_r)*2); N.SaveToFile('DESTINATION'); finally FreeAndNil(N); end; finally FreeAndNil(M); end; end; end; //Bianry File: use memory move procedure TfrmMain.Button4Click(Sender: TObject); type T_r = packed record A: Integer; B: Integer; end; var M: TMemoryStream; p: Pointer; begin if FileExists('SOURCE') then begin M := TMemoryStream.Create; try M.LoadFromFile('SOURCE'); p := Pointer(Integer(M.Memory) SizeOf(T_r)*2); Move(p^,M.Memory^,M.Size-SizeOf(T_r)*2); M.Size := M.Size-SizeOf(T_r)*2;; M.SaveToFile('DESTINATION'); finally FreeAndNil(M); end; end; end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |