忍者ブログ
とある原子核実験のブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


データの圧縮率を考えて実験のデータはバイナリ形式で保存することが多い。

データを開いて解析するときバイナリデータをデコードする必要がある。例えば
od -x data.dat } less
というコマンドを打って
0x00102312
という4byteのデータを得たとしよう。
その際データ構造が
0:15   実際のデータ
16:18  ch
19:

こうなればrootなりpawなりでいじり放題。

ちなみにファイルを開く際C言語ならFILE ポインタでファイルのディスクリプタを取得しそれに対してfread,C++ならifstreamでファイルオブジェクトを作成し、バイナリモードでファイルを開く。その後readメソッドを読みだすということをする。

ファイルの最後まで読みだす時、
ifstream::eof()メソッドをもちいることができる。
しかしそれは最後のデータを読んだときに1になる。
すなわち
while(fin.eof()){

}

という用い方をすると1回余分にループが回ってしまう。

これを回避するためには
while(1){

if(fin.eof()) break;
}
とか
while(fin.read<>){

}
とかすればよい。

実際に用いるデータはヘッダとしてevの情報、データのサイズなどが書かれていることが多い。
その際は下の方法を用いると楽である。
PR

Comment
Name
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
[37] [36] [35] [34] [33] [32] [31] [30] [29] [28] [27
«  Back :   HOME   : Next  »
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新コメント
最新記事
最新トラックバック
プロフィール
HN:
toytoy
性別:
男性
職業:
研究者みならい
バーコード
ブログ内検索
カウンター
アクセス解析
忍者ブログ [PR]