ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

ファイルの終端を検知する

バージョン 4.0 以降

ファイルからデータを読み取るストリームでファイルの終端を検知するには、
SFXStreamReader::Ends 関数を使用します。

以下のコードは、ファイルから終端に達するまで1文字ずつ読み込み、表示します。

SFXFile file;
SFXBinaryStreamReader reader;

if (file.OpenReadOnly(SFXPath("/data.txt")) == SFERR_NO_ERROR) {
    // ファイルのオープンに成功したなら
    UInt08 c;
    file.GetStreamReader(10, &reader);

    while (!reader.Ends()) { // ファイルの終端に到達するまで
        if (reader.GetReadableSize() == 0) {
            reader.Fetch();
        }
        reader >> c;      // 1文字読み込み
        TRACE("%c", c);   // 表示
    }
    file.Close();
}

バージョン 3.0

ファイルストリームでファイルの終端を検知するには、
SFUFileStream::IsEOS 関数を使用します。

以下のコードは、ファイルから終端に達するまで1文字ずつ読み込み、表示します。

SFUFileStream fstream;

if (fstream.Open("/data.txt", _OFM_READ) == SFERR_NO_ERROR) {
    // ファイルのオープンに成功したなら
    AChar c;

    while (!fstream.IsEOS()) { // ファイルの終端に到達するまで
        fstream >> c;      // 1文字読み込み
        TRACE("%c", c);    // 表示
    }
    fstream.Close();
}

参照 SFXFile::OpenReadOnly | SFXFile::GetStreamReader |
SFXStreamReader::GetReadableSize | SFXStreamReader::Fetch