Я пытаюсь проверить, если большой текст документа около 500 000 строк содержит определенную строку, и проблема, если я считаю, это так:Как найти конкретную строку с уникальным содержанием строки в большой текстовый документ
string searchLine = "line 4";
using (StreamReader sr = new StreamReader(filePath))
{
string contents = sr.ReadToEnd();
if (contents.Contains(searchLine))
{
Console.WriteLine("line exist");
}
else
{
Console.WriteLine("line does not exist");
}
}
и содержание документа, и я не принимаю письма дубликатов к нему, все строки являются уникальными:
line 1
line 2
line 3
line 4
line 5
line 47
Так что я получил ответ, что это «линия существовать» для «линии 4» Хорошо, но потом, если я удалить его из порядок и файл проверки для той же строки «строка 4» снова, он говорит, что «линия существует», потому что кажется lik e он находит все 4 числа в текстовом файле, и только если я удалю «line47», тогда «строка не существует».
Так что мне интересно, как найти определенную строку с уникальным строковым контентом в большом текстовом документе.
Вы уверены, что это ** линия 74 ** вводит в заблуждение? Я верю, что нет. Возможно, вы можете попробовать найти с помощью notepad ++/ultraedit. –
Вы можете включить 'Environment.NewLine' в свою' searchLine'. И как сказал Лэй Ян, ** строка 74 ** должна ли быть ** строка 47 **? – Prisoner
Содержит не обрабатывает случай, когда в строке есть все символы, которые вы ищете, и больше символов, следующих за этим. Итак, да, линия 47, подобная @Alex, вернется. –