Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilabヘルプ >> Files : Input/Output functions > mopen

mopen

ファイルをオープン

呼び出し手順

[fd, err] = mopen(file [, mode, swap ])

引数

file

オープンするファイルのパスを有する文字列.

mode

ファイルにリクエストするアクセスモードを指定する文字列.

swap

スカラー. swap が存在し, swap = 0の場合, 自動バイトスワップは無効になります.

デフォルト値は 1です.

err

スカラー. エラーインジケータ.

エラー値: エラーメッセージ:
0 エラー無し
-1 論理ユニットがなくなりました
-2 ファイルをオープンできませんでした
-3 メモリがなくなりました
-4 名前が無効
-5 無効なステータス
fd

スカラー: ファイル記述子(正の整数).

説明

mopenは,C言語のfopen プロシージャと互換の方法でfileをオープンするために 使用できます. swap引数が指定されない場合, ファイルが"リトルインディアン IEEE 形式"でコード化されていると 仮定されます. プロセッサのIEEE形式と一致させる必要がある場合, データはスワップされます.

modeパラメータは,ストリームにリクエストされる アクセス型を制御します. パラメータには以下の値の一つを指定することができます:

r

読み込み用にオープン(デフォルト). ファイルは存在する必要があり,そうでない場合は失敗します.

w

書き込み用にオープン. ファイルが存在する場合,その内容は破棄されます.

a

追記用にオープン. ファイルが存在しない場合は作成されます.

r+

読込みおよび書き込み両方でオープン. ファイルは存在する必要があり,そうでない場合は失敗します.

w+

読込みおよび書き込み両方でオープン. ファイルが存在する場合,その内容は破棄されます.

a+

読込みおよび書き込み両方でオープン. ファイルが存在しない場合は作成されます.

加えて, ファイルの型を指定するために以下の文字を使用できます:

t

テキストファイル.

b

バイナリファイル (デフォルト).

デフォルトのアクセスモードは 'rb' (バイナリファイル読込み)です.

注意: Windowsでは, テキストファイルモードで, CR (復改) - LF (ラインフィード) の組は読込み次にLFに変換され, LFは書き込み時に CR-LF の組に変換されます.

更新用にファイルをオープンする際, 結果のストリームに入力および出力の両方の処理を行うことができます. しかし,ファイル中の位置決め処理(mseek関数)を行わずに 出力処理を入力処理の直後に行うことはできません. また,入力処理がファイルの終端に達しない限り, ファイルの位置決め処理を中断せずに 入力処理を出力処理の直後に行うことはできません.

ファイルを追記用にオープンする場合(つまり,modeパラメータが aまたはa+の場合), ファイルにすでにある情報を上書きすることは できません. mseek関数により, ファイルの任意の位置にファイルポインタを移動することができますが, 出力をファイルに書き込む際に,カレントのファイルポインタは無視されます. 全ての出力はファイルの終端に書き込まれ, ファイル位置は出力の末尾に移動されます.

Fortran関数と互換性のある方法でファイルをオープンするには, file関数を使用してください.

// SCI+'/ACKNOWLEDGEMENTS'をテキスト,読込みのみとしてオープン
fd_r = mopen(SCI+'/ACKNOWLEDGEMENTS','rt')
        
// fd_rから5行読み込む
mgetl(fd_r, 5)
            
// ファイルを読み込む他の方法
// 5ワードを読み込む
mfscanf(5,fd_r,'%s')
            
// テキスト,読込みのみのSCI+'/ACKNOWLEDGEMENTS'のファイル記述子を閉じる
mclose(fd_r);
// ファイルを書き込みプロパティ付きテキストとしてオープン
fd_w = mopen(TMPDIR+'/write.txt','wt');
            
// fd_w に1行書き込み
mputl('This is a line of text', fwd_w);
mclose(fd_w);
            
// テキスト読み込み 
fd_r2 = mopen(TMPDIR+'/write.txt','rt');
mgetl(fd_r2) 
mclose(fd_r2);
// 書き込んだファイルをバイナリとして読み込む
            
// まずファイルに書き込む
fd_wb = mopen(TMPDIR+'/writeread.bin','wb')
            
// バイナリとして値を出力
mput(2003,'l',fd_wb);
mput(2008,'i',fd_wb);
mput(2012,'s',fd_wb);
mput(98,'c',fd_wb);
            
// TMPDIR+'/writeread.bin'を指すファイル記述子を閉じる
mclose(fd_wb);
            
// ファイルを読み込む
fd_rb = mopen(TMPDIR+'/writeread.bin','rb')
            
mget(fd_rb, 'l')
mget(fd_rb, 'i')
mget(fd_rb, 's')
mget(fd_rb, 'c')
            
mclose(fd_rb)

参照

  • mclose — オープンされているファイルを閉じる
  • merror — ファイルアクセスに関するエラーインジケータを調べる
  • meof — ファイルの終端に達したかどうかを確認する
  • mfprintf — 変換,整形し,ファイルにデータを書き込む
  • fprintfMat — 行列をファイルに書き込む
  • mfscanf — 標準入力から入力を読み込む (C言語の scanf 関数へのインターフェイス)
  • fscanfMat — テキストファイルから行列を読み込む
  • mget — 指定したバイナリ形式で バイトまたはワードを読み込み, double に変換
  • mgetl — アスキーファイルから行を読み込む
  • mgetstr — ファイルから文字列を読み込む
  • mprintf — 変換, 整形し, Scilab主ウインドウにデータを書き込む
  • mput — 指定したバイナリ形式でバイトまたはワードを書き込む
  • mputl — テキストファイルに文字列を書き込む
  • mputstr — ファイルに文字列を書き込む
  • mscanf
  • mseek — バイナリファイルの中でカレントの位置を設定する.
  • mtell — ファイル先頭基準でカレントバイトのオフセットを返す
  • mdelete — ファイルを削除
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 13:58:25 CEST 2014