私は、テキスト内のパターンを発見するには、以下の機能を書いた:それが表示されますパターンをバイナリファイルで検索しますか?
bool match(char* patt,char* text){
int textLoc=0, pattLoc=0, textStart=0;
while(textLoc < (int) strlen(text) && pattLoc < (int)strlen(patt)){
if(*(patt+pattLoc) == *(text+textLoc)){
textLoc= textLoc+1;
pattLoc= pattLoc+1;
}
else{
textStart=textStart+1;
textLoc=textStart;
pattLoc=0;
}
}
if(pattLoc >= (int) strlen(patt))
return true;
else return false;
}
、機能はタイプchar*
の2つのパラメータを取ります。私はbinary file
のパターンを見つけるためにこの機能を使いたいのですが、この問題を解決するために何を提案していますか?
バイナリファイルでは、ファイルを自分でメモリにマップしているのですか、それを読み込んでDLLを挿入していますか? –
@ Mike Kwanはい私は 'CreateFilemMapping'などでメモリにファイルをマップします。 – Aan
バイナリファイルにnullバイトが含まれていないとどうなるか考えてみましょう。データのバイナリストリームをヌル終了文字列として扱うことはできません。 –