1
我在C++中創建了一個記事本++插件,它在日誌文件中的關鍵字之間進行搜索並在該關鍵字之間複製整個數據(該關鍵字在文件或根本不會發生)。 這裏是我的代碼[在文本文件中搜索] [在C++中的Notepad ++插件]
std::ifstream in(curr_file_path);
std::string search("TEXT TO SEARCH");
while (std::getline(in, line))
{
r_val = line.find(search);
if (r_val != -1)
{
f_match = r_val;
r_val = -1;
while (r_val == -1)
{
std::getline(in, line);
r_val = line.find(search);
for (int i = 0; i < line.size(); i++)
{
pDestText[textLen++] = line[i];
}
}
pDestText[textLen - 27] = '\0';
break;
}
}
}
搜索要searched.Input文件中的字符串是我的查詢是作爲日誌文件是非常大的,它需要時間約5 seconds.Can我優化這 。我正在考慮的一個優化是跳過第一個50000行代碼,因爲我確信我所看到的文本不會在第一個50000行中出現。但是有沒有更好的優化方法。如果沒有,任何人都可以告訴如何跳過第一個50000如果代碼行少於50000行,則會發出錯誤。
如果IO是瓶頸,請考慮此https://stackoverflow.com/a/4558426/7132300 – algrid