C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 可変長クラスデータのファイル入出力について


(過去ログ 59 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■33711 / inTopicNo.1)  可変長クラスデータのファイル入出力について
  
□投稿者/ ソマ (1回)-(2009/03/07(Sat) 21:37:30)

分類:[C/C++] 

Visual Studio 2008 C++ Express Edition
Windows XP sp3

お世話になります。
内部に可変長のデータ(STLコンテナ)を持つクラスの内容をファイルに保存して読み書きしたいのです。
Boostのシリアライズを使用しないで、そういったことを行うにはどうすればよいでしょうか?
ファイルストリームのブロックリード・ライトでクラスをchar*にキャストして行う方法もあるようですが、Cスタイルのキャストは使用したくないので、他の方法がありましたらご教授ください。
引用返信 編集キー/
■33712 / inTopicNo.2)  Re[1]: 可変長クラスデータのファイル入出力について
□投稿者/ επιστημη (1804回)-(2009/03/07(Sat) 21:40:22)
επιστημη さんの Web サイト
2009/03/07(Sat) 21:48:15 編集(投稿者)

> 内部に可変長のデータ(STLコンテナ)を持つクラスの内容をファイルに保存して読み書きしたいのです。

なにがわからんですか?

コンテナの要素はファイル(stream)に書けますか/読んで復元できますか?
それができるなら:

-書く:
stream << コンテナの要素数;
for ( コンテナの各要素について ) {
 stream << 要素;
}

-読む:
int n;
stream >> n;
for ( n 回 ) {
 要素の型 x;
 stream >> x;
 x をコンテナに追加;
}

引用返信 編集キー/
■33713 / inTopicNo.3)  Re[2]: 可変長クラスデータのファイル入出力について
□投稿者/ ソマ (3回)-(2009/03/07(Sat) 22:29:21)
すばやいご返答まことにありがとうございます。
最初にデータ件数をログしておけば可変長に読み書きできるのですね
コンテナ内部のデータもまた可変長サイズのクラスを持っていますので、ちょっと工夫が必要ですがトライしてみようと思います。
ありがとうございました。
解決済み
引用返信 編集キー/
■33745 / inTopicNo.4)  Re[3]: 可変長クラスデータのファイル入出力について
□投稿者/ επιστημη (1807回)-(2009/03/09(Mon) 08:51:33)
επιστημη さんの Web サイト
2009/03/09(Mon) 08:52:32 編集(投稿者)

> 最初にデータ件数をログしておけば可変長に読み書きできるのですね

てかそれが一番簡単ですから。

ぢつはオブジェクトの保存/復元は結構難物でして、
コンテナの要素が参照であるとき、
要素の重複にきちんと対応してあげないと
正しく復元できなくなったりするです。
重複を考慮しなくていいならさほどにめんどくないですが。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -