18-8 仵蛈m

每一次開啟檔案時,MATLAB 即保持一個檔案位置指標(File Position Indicator),以決定下一次進行資料讀取或寫入的位置。控制此指標的函數如下:

函數功能
feof 測試指標是否在檔案結束位置
fseek 設定指標位置
ftell 取得指標位置
frewind 重設指標至檔案起始位置

foef 可用於測試指標是否在檔案結束位置,例如

Example 1: 18-檔案讀寫/feof01.mfid = fopen('test.txt'); A = fscanf(fid, '%g', [3 4]) feof(fid) A = 1 16 49 100 4 25 64 0 9 36 81 0 ans = 1

在上例中,feof(fid) 傳回 1,表示檔案指標已經在檔案結束位置,因為 test.txt 只包含 10 個數目字。若要在從 test.txt 的起始位置讀出資料,可用 frewind 來重設指標的位置:

>> frewind(fid); >> A = fscanf(fid, '%g', 5) A = 1 4 9 16 25

fseek 函數可用於設定指標位置,其格式如下

status = fseek(fid, offset, origin)

其中 fid 是檔案識別碼,offset 是偏移量(以 byte 為單位,可以是正數或負數),origin 代表基準點,可包含下列字串:

ftell 則可用於傳回現在的指標位置。例如

Example 2: 18-檔案讀寫/ftell01.mfid = fopen('test.bin', 'w'); count = fwrite(fid, randperm(10), 'int32'); ftell(fid) ans = 40

40 代表指標已在檔案結束位置。欲將指標向前移動 10 bytes,可輸入如下:

>> fseek(fid, -10, 'cof'); >> ftell(fid) ans = 30

此代表指標的新位置是 30。


MATLAB程式設計:入門篇