CArchiveクラスを使ってバイナリデータを読み書きする

CArchiveクラスを使用することで、バイナリデータの読み書きをおこなうことができる。 CArchiveオブジェクトを作成する場合、それに先がけてCFileクラスのオブジェクトを作成する必要がある。 また、ファイルオープン時のモードとアーカイブの入出力状態が一致していなければならない。

以下の例は、リストボックスのデータをファイルに書き込んだり、それを読み込むものである。
まず、データをファイルへ読み込む場合のコード例を示す。

	CFile f("testdata.dat", CFile::modeCreate | CFile::modeWrite);
	CArchive ar(&f, CArchive::store);
	CString strText;

	ar << m_list1.GetCount();	// リストボックス内の文字列の数を保存

	for( int i = 0; i < m_list1.GetCount(); i++ )
	{
		m_list1.GetText(i, strText);
		ar << strText;
	}
次に示すのは、ファイルからデータを読み込み、リストボックスへ追加するコード例である。
	CFile f("ukfiletest.dat", CFile::modeRead);
	CArchive ar(&f, CArchive::load);
	CString strText;
	int iCount;

	ar >> iCount;	// 文字列の数を取得

	for( int i = 0; i < iCount ; i++ )
	{
		ar >> strText;
		m_list1.AddString(strText);
	}

目次へ