2009年10月7日水曜日

10/7 UDOP Tips1

UDOPでバイナリファイルを読み込むときの注意。

基本的に読み込みはprocessメソッドで行う。

ifstream in(<ファイルの絶対パス>);
ここは絶対パスな点に注意。UDOPはdataディレクトリなんぞ気にしません。

SPADEではByteListを使って読み込む場合、C++ではdlistとなるので注意。
このあたりの対応関係はマニュアルに記載されている。

ファイルから直接dlistへは書き込めないようなので、(>> などは使えなかった)
愚直にwhile文を使ってバッファに一度書き込んでから追記する。
dlistは内部ではvectorから継承されたものなので、push_backを使えばOK.。

まとめると、以下のようになる。

dlist buf;
unsigned char tmp;
ifstream in("FILE PATH");

while( in >> tmp)
buf.push_back(tmp);

これで、bufにファイルの内容が読み込まれる。
あとはoTuple.set_VAL(buf);とでもすれば、ストリームとしてバイナリを出力できる!

0 件のコメント:

コメントを投稿