Development Environment | ![]() ![]() |
ファイルのオープン
テキスト、または、バイナリファイルの読み書きを行う前に、fopen
コマンドで、それらのファイルを開く必要があります。
fid = fopen('filename','permission')
Permission文字列を指定する
permission
文字列は、ユーザがファイルに対して、どのようなアクセスを要求するかを指定する文字列です。permission
文字列が、取り得る値は、以下のとおりです。
r
:読み取り専用w
:書き込み専用a
:内容の追加のみ可能r+
:読み書き可能注意 Microsoft Windowsのように、テキストファイルとバイナリファイルを区別するシステムでは、permission 文字列の中に付加的なキャラクタを必要とします。たとえば、バイナリファイルを読み取り専用でオープンするには、'rb' と設定します。
|
出力されたファイル識別子(fid)の使用
ファイルのオープンが成功すると、fopen
は、ファイル識別子(fid)
と云われる非負の整数を出力します。開いたファイルを他のI/O関数でアクセスする場合、引数にこの値を設定します。たとえば、つぎのfopen
ステートメントは、penny.dat
という名前のデータファイルを読み取り専用でオープンします。
fid = fopen('penny.dat','r')
fopen
がうまく実行されない、たとえば、オープンしようとしたファイルが、存在しない場合、fopen
は、つぎの操作を行ないます。
-1
を割り当てます。 ferror
も、エラーに関する情報を提供します。ファイルをオープンする度に、ファイル識別子をテストすることをお勧めします。たとえば、つぎのコードは、読み込み可能なファイルの名前をユーザが入力するまでループを繰り返します。
fid=0; while fid < 1 filename=input('Open file: ', 's'); [fid,message] = fopen(filename, 'r'); if fid == -1 disp(message) end end
ここで、nofile.mat
が存在せず、goodfile.mat
が存在すると仮定します。ある特定のシステム上で、つぎの結果が表れます。
Open file: nofile.mat Cannot open file. Existence? Permissions? Memory? . . . Open file: goodfile.mat
tempdir
やtempname
コマンドは、ユーザのシステム上にテンポラリデータを格納する際に使用します。
関数 |
目的 |
|
テンポラリディレクトリ名の取得 |
|
テンポラリファイル名の取得 |
ユーザは、テンポラリファイルを作成することができます。システムの中には、再起動する度にテンポラリファイルを削除してしまうものもあります。再起動する度に、テンポラリとしてファイルを設定することは、単に、ファイルをバックアップしない、という意味です。
tempdir
と名付けられた関数は、ユーザのシステム上で、テンポラリファイルを格納するために設計されたフォルダ、または、ディレクトリの名前を出力します。たとえば、UNIXシステム上で tempdir
を実行すると、/tmp
ディレクトリを出力します。
MATLABには、テンポラリディレクトリに格納されたファイル名を出力する関数tempname
も用意されています。出力されるファイル名は、テンポラリデータに対して、適切に設定されます。たとえば、テンポラリファイルの中に、あるデータを格納したい場合、つぎのコマンドを先ず使用します。
fid = fopen(tempname, 'w');
![]() | 低水準ファイルI/O関数の使用 | バイナリデータの読み込み | ![]() |