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

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

内部バッファで読み書きを行う

SFXMemory クラスを利用して、内部バッファを読み書きします。

SFXMemory memory;
SFXBinaryStreamWriter writer;   // メモリ書き込み用ストリーム 
SFXBinaryStreamReader reader;   // メモリ読み込み用ストリーム
SFXAnsiString string;           // 書き込むデータ

// メモリ ストレージを開く
if (memory.Open() == SFERR_NO_ERROR) {

    // メモリ書き込み用ストリームを取得する
    if (memory.GetStreamWriter(1024, &writer)== SFERR_NO_ERROR) {

        writer << "abc";  // ストリームにデータを書き込む
        writer.Flush();   // フラッシュする(実際にデータを書き込む)

        // バッファ サイズを取得する size = 4
        TRACE("size = %d", memory.GetSize());    
        // 内部バッファへのポインターを取得する write = abc + '\0'
        TRACE("wrire = %s", memory.GetBuffer()); 
        
        writer.Release();  // ストリームを解放する
    }

    // 先頭へシークする
    memory.SeekStart(0);

    // メモリ読み込み用ストリームを取得する
    if (memory.GetStreamReader(1024, &reader) == SFERR_NO_ERROR) {

        reader.Fetch();  // フェッチする ( データを読み込む ) 
        reader >> string; // ストリームにデータを読み込む

        // 文字数を取得する size = 3
        TRACE("size = %d", string.GetLength());   
        // 内部バッファを取得する read = abc
        TRACE("read = %s", string.GetCString());  

        reader.Release();  // ストリームを解放する
    }
    memory.Close();  // メモリ ストレージを閉じる
}