線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2434
推到 Plurk!
推到 Facebook!

什麼叫二進位開檔?

 
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-02 07:54:12 IP:210.202.xxx.xxx 未訂閱
什麼叫二進位開檔? 這是一位會員問站長的問題,站長貼上回答給Delphi新生參考! 就檔案系統來說是沒有區分文字檔與二進位檔的, 是我們開檔的指令不同,對檔案的詮釋不同, 才會有開文字檔與開二進位檔的不同! 簡單的說,用TextFile的方式開檔就是"開文字檔", 文字檔以換行字元為每行的結束 $0d $0a 以檔案結束字元 $1a 為檔案最終的Byte(但有時會省略) 用File的方式採用BlockRead()函式開檔就是"開二進位檔", 資料的讀取採一個Byte為單位讀出至Buffer中! 文字檔開檔範例,採TextFile範例: var F: TextFile; S: string; begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); { File selected in dialog box } Reset(F); Readln(F, S); { Read the first line out of the file } Edit1.Text := S; { Put string in a TEdit control } CloseFile(F); end; end; 二進位(Binary)檔開檔範例,採File範例: var FromF, ToF: file; NumRead, NumWritten: Integer; Buf: array[1..2048] of Char; begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(FromF, OpenDialog1.FileName); Reset(FromF, 1); { Record size = 1 } if SaveDialog1.Execute then { Display Save dialog box} begin AssignFile(ToF, SaveDialog1.FileName); { Open output file } Rewrite(ToF, 1); { Record size = 1 } Canvas.TextOut(10, 10, 'Copying ' IntToStr(FileSize(FromF)) ' bytes...'); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); CloseFile(FromF); CloseFile(ToF); end; end; end; ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-11-22 11:56:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!