2012-02-26 24 views
0

こんにちは私は16進数で次のファイル形式を持っていました。 DC-01-00-00-80-11-D9-4E-C0-A8-01-24-C0-A8-01-57-13-C4-13-C4-01-BD(本文のように読むファイル)16進数の文字で表現された16進数

今Iループラインごととインクルード各行 私は次の操作を行い

これは、各ラインのためのforループの内側にある今、私の懸念はからその一部のデータである

istringstream ss(tempString.substr(i,2)); 
size_t converted; 
ss >> hex >> converted; 
char appended = (char)converted; 
// cout << tempString.substr(i,2)+ " " << appended<<(int)i << (int)firstFlag<<endl; 
buildString+= appended; 
     i++; 

を読みます16進数のファイルは0x00で、正しく追加されています。または私はここで何かを逃しています。実際

ものは、おそらく私は私が

Search(size_t TextLength, const char *Text, const vector<const char *> &patterns); 

答えて

0
を取る関数へのラインでそれらを変換し、それらに行を渡すことになっていますので、持っているパターンライブラリにそれらを比較することとしています侵入が含まれているパケットのトレースがあります

これが読み書き中の単なる "文字列"の場合、NULLは完全に受け入れられます。

ヌル終了文字列は\ 0で終わり、文字列の最後をマークします。文字列のサイズを事前に知らなくても、達成することができる最高のパフォーマンスです(Order n)。これは、文字列のサイズを文字列の前に追加し、サイズトークンを挿入することによって文字列のサイズをすでに認識している場合は、

5 \ 0Helloこれは文字列解析プログラムに5文字が続いていることを意味します。これは、nバイトを読み取る必要がなくなったので、look upがOrderNよりはるかに小さいことを意味します。 。

+0

これは実際には侵入を含んでいると思われるパケットトレースです。私はそれらをパターンライブラリと比較して、それらを変換し、それらを行単位で検索する関数に渡すことになっています(size_t TextLength、const char *テキスト、constベクトル&patterns); – user1231229