J'ai créé un bloc-notes ++ en C++ Il recherche entre un mot-clé dans un fichier journal et copie l'intégralité des données entre ce mot-clé (ce mot-clé apparaît exactement deux fois fichier ou ne se produit pas du tout). Voici mon code[Recherche dans le fichier texte] [Notepad ++ plugin en C++]
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;
}
}
}
recherche est la chaîne à fichier searched.Input est. Ma requête est que le fichier journal est très grand, il prend le temps d'environ 5 seconds.Can i détecteront ce . Une optimisation que je pense saute d'abord 50000 lignes de code car je suis sûr que le texte que je cherche ne viendra pas en premier 50000 lignes. Mais y a-t-il une meilleure façon d'optimiser. Si non, quelqu'un peut-il dire comment sauter d'abord? lignes de code et de lancer une erreur si elle a moins de 50000 lignes.
Si IO est le goulot d'étranglement, pensez à https://stackoverflow.com/a/4558426/7132300 – algrid