在二進位制檔案中查詢關鍵字
阿新 • • 發佈:2019-01-30
如果找的是二進位制:
string::size_type FindBinary(const string src_file, const char* keyword, const unsigned int nsize) { fstream f(src_file.c_str(), ios::in | ios::out | ios::binary); if (!f.good()) return string::npos; stringstream ss; ss << f.rdbuf(); f.close(); string content(ss.str()); for (string::size_type i=0; i<content.length(); i++) { for (string::size_type j=0; j<nsize; j++) { if (content.at(i+j) != keyword[j]) break; if (nsize == j + 1) return i; // oh yeah, find it } } return string::npos; }
如果找的是文字:
string::size_type FindKeyword(const string src_file, const string keyword) { fstream f(src_file.c_str(), ios::in | ios::out | ios::binary); if (!f.good()) return string::npos; stringstream ss; ss << f.rdbuf(); f.close(); string content(ss.str()); return content.find(keyword); }