Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWFile

バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.

## RWFile

### 形式

      #include <rw/rwfile.h>
      RWFile f("filename");

### 説明

  このクラスは、標準の C ストリームライブラリ (`fopen()`、`fread()`、`fwrite()` など) を使用してバイナリのファイル操作をカプセル化します。Interviews Class Library (1987 年スタンフォード大学) のクラス PFile にもとづいています。クラス PFile との互換性を保持するため、メンバー関数名は大文字で始めます。

  このクラスはバイナリの操作をカプセル化するために作成されたものであるため、バイナリモードでオープンしてください。これは MS-DOS では特に重要で、バイナリモードでないと、改行符号に相当するバイトが復帰符号と改行符号に変換されてしまいます。

### 持続性

  なし

### 公開コンストラクタ

      RWFile(const char* filename, const char* mode = 0);

    ファイル名 `filename`、モードが `mode` の RWFile を作成します。モードは標準 C ライブラリ関数の `fopen()` から与えられます。`mode` がゼロ (デフォルト) の場合、コンストラクタは指定された `filename` の既存のファイルを更新用にオープンします (モードは "`rb+`")。オープンできない場合は指定された `filename` で新しいファイルを作成します (モードは "`wb+`")。この結果のオブジェクトを、関数 `isValid()` で、妥当かどうか検査してください。

      ~RWFile();

    未完了の入出力操作をすべて実行し、ファイルをクローズします。

### 公開メンバー関数

      const char*
      Access();

    `FILE*` がオープンされているアクセスモードを返します。

      void
      ClearErr();

    エラー状態をリセットし、`Eof()` と `Error()` が `TRUE` を返さないようにします。C ライブラリ関数 `clearerr()` を呼び出します。

      RWoffset
      CurOffset();

    ファイルポインタの現在の位置を、ファイルの先頭からのバイト数で返します。

      RWBoolean
      Eof();

    ファイルの最後に達したら `TRUE` を返します。

      RWBoolean
      Erase();

    ファイルの内容を消去しますが、ファイルをクローズしません。操作が成功した場合に `TRUE` を返します。

      RWBoolean
      Error();

    C ライブラリ関数 `ferror()` の呼び出しにより決定されるように、入出力エラーが発生したら `TRUE` を返します。

      RWBoolean
      Exists();

    ファイルが存在すれば `TRUE` を返します。

      RWBoolean
      Flush();

    未完了の入出力操作をすべて実行します。操作が成功したら `TRUE` を返します。

      const char*
      GetName();

    ファイル名を返します。

      FILE*
      GetStream();

    RWFile インタフェースの下にある `FILE*` を返します。システムに依存する照会などで「軒の下に入る」必要があるユーザー用に提供されます。ファイルの状態を変更する目的には使用しないでください。

      RWBoolean
      IsEmpty();

    ファイル内にデータがなければ `TRUE` を、あれば `FALSE` を返します。

      RWBoolean
      isValid() const;

    ファイルのオープンに成功していると `TRUE` を、失敗していると `FALSE` を返します。

      RWBoolean
      Read(char& c);
      RWBoolean
      Read(wchar_t& wc);
      RWBoolean
      Read(short& i);
      RWBoolean
      Read(int& i);
      RWBoolean
      Read(long& i);
      RWBoolean
      Read(unsigned char& c);
      RWBoolean
      Read(unsigned short& i);
      RWBoolean
      Read(unsigned int& i);
      RWBoolean
      Read(unsigned long& i);
      RWBoolean
      Read(float& f);
      RWBoolean
      Read(double& d);

    指定したそれぞれの組み込み型を読み取り、成功すれば `TRUE` を返します。

      RWBoolean
      Read(char* i,          size_t count);
      RWBoolean
      Read(wchar_t* i,       size_t count);
      RWBoolean
      Read(short* i,         size_t count);
      RWBoolean
      Read(int* i,           size_t count);
      RWBoolean
      Read(long* i,          size_t count);
      RWBoolean
      Read(unsigned char* i, size_t count);
      RWBoolean
      Read(unsigned short* i,size_t count);
      RWBoolean
      Read(unsigned int* i,  size_t count);
      RWBoolean
      Read(unsigned long* i, size_t count);
      RWBoolean
      Read(float* i,         size_t count);
      RWBoolean
      Read(double* i,        size_t count);

    指定したそれぞれの組み込み型のインスタンスを `count` 個、`i` が指すブロックに読み込みます。それが成功すれば `TRUE` を返します。この関数を呼び出す前に、ユーザーが `i` を宣言して必要な記憶領域を割り当てる必要があります。

      RWBoolean
      Read(char* string);

    終端ヌル文字を含めて文字列を `string` が指すブロックに読み取り、成功すると `TRUE` を返します。この関数を呼び出す前に、ユーザーが `string` を宣言し必要な記憶領域を割り当てる必要があります。この関数を使用するときには、オーバーフローに注意してください。

      RWBoolean
      SeekTo(RWoffset offset)

    ファイルポインタをファイルの先頭から `offset` バイトの所に位置付けます。操作が成功したら `TRUE` を返します。

      RWBoolean
      SeekToBegin();

    ファイルポインタをファイルの先頭に位置付けます。操作が成功したら `TRUE` を返します。

      RWBoolean
      SeekToEnd();

    ファイルポインタをファイルの最後に位置付けます。操作が成功したら `TRUE` を返します。

      RWBoolean
      Write(char i);
      RWBoolean
      Write(wchar_t i);
      RWBoolean
      Write(short i);
      RWBoolean
      Write(int i);
      RWBoolean
      Write(long i);
      RWBoolean
      Write(unsigned char i);
      RWBoolean
      Write(unsigned short i);
      RWBoolean
      Write(unsigned int i);
      RWBoolean
      Write(unsigned long i);
      RWBoolean
      Write(float f);
      RWBoolean
      Write(double d);

    指定した基本型を書き込み、成功すると `TRUE` を返します。

      RWBoolean
      Write(const char* i,          size_t count);
      RWBoolean
      Write(const wchar_t* i,       size_t count);
      RWBoolean
      Write(const short* i,         size_t count);
      RWBoolean
      Write(const int* i,           size_t count);
      RWBoolean
      Write(const long* i,          size_t count);
      RWBoolean
      Write(const unsigned char* i, size_t count);
      RWBoolean
      Write(const unsigned short* i,size_t count);
      RWBoolean
      Write(const unsigned int* i,  size_t count);
      RWBoolean
      Write(const unsigned long* i, size_t count);
      RWBoolean
      Write(const float* i,         size_t count);
      RWBoolean
      Write(const double* i,        size_t count);

    `i` が指すブロックから、指定したそれぞれの基本型のインスタンスを `count` 個、書き込みます。それが成功したら `TRUE` を返します。

      RWBoolean
      Write(const char* string);

    `string` が指すブロックから、終端ヌル文字を含めて文字列を書き込みます。それが成功すれば `TRUE` を返します。この関数を使用するときは、終端のヌル文字がない文字列に注意してください。

### 静的公開メンバー関数

      static RWBoolean
      Exists(const char* filename, int mode = F_OK);

    `filename` という名前のファイルが存在し、指定した `mode` に従ってアクセスできれば、`TRUE` を返します。`mode` は次の内の 1 つ以上からビット毎の論理和演算を行った結果になります。

      `F_OK`: 存在する (他のモードに含まれる)

      `X_OK`: 実行可能あるいは検索可能

      `W_OK`: 書き込み可能

      `R_OK`: 読み取り可能

    コンパイラまたはオペレーティングシステムが POSIX `access()` 関数をサポートしない場合、モード `X_OK` は常に `FALSE` を返します。