Development Environment |
Controlling Position in a File
Once you open a file with fopen
, MATLAB maintains a file position indicator that specifies a particular location within a file. MATLAB uses the file position indicator to determine where in the file the next read or write operation will begin. The following sections describe how to
Determining End-of-File
The fseek
and ftell
functions let you set and query the position in the file at which the next input or output operation takes place:
fseek
function repositions the file position indicator, letting you skip over data or back up to an earlier part of the file.
ftell
function gives the offset in bytes of the file position indicator for a specified file.
fid
is the file identifier for the file. offset
is a positive or negative offset value, specified in bytes. origin
is one of the following strings that specify the location in the file from which to calculate the position.
|
Beginning of file |
|
Current position in file |
|
End of file |
Understanding File Position
To see how fseek
and ftell
work, consider this short M-file.
This code writes out the numbers 1 through 5 to a binary file named five.bin
. The call to fwrite
specifies that each numerical element be stored as a short
. Consequently, each number uses two storage bytes.
Now reopen five.bin
for reading.
This call to fseek
moves the file position indicator forward 6 bytes from the beginning of the file.
This call to fread
reads whatever is at file positions 7 and 8 and stores it in variable four
.
The act of reading advances the file position indicator. To determine the current file position indicator, call ftell
.
This call to fseek
moves the file position indicator back 4 bytes.
Calling fread
again reads in the next value (3).
Writing Binary Data | Reading Strings Line by Line from Text Files |