Я пытаюсь проверить журнал с помощью C#, поэтому мне нужно увидеть, появляются ли две строки одновременно или нет.
Например, если имя файла - A213.txt
и имеет следующие две строки
Converting table AM014
Table 'AM014' (522 records) is converted
поэтому нужно, чтобы консоль записывала строку как 'the file was success'
.
Но если файл содержит что-то среднее, скажем,
Converting table AM014
Not Found
Not Found
Table 'AM014' (522 records) is converted
Мне нужна консоль, пишите 'the file was not success'
две последовательные строки (Not Found \n Not Found
) будут различаться в файле или останутся неизменными во всем файле ??
Он останется неизменным на протяжении всего файла @Prasadtelkikar.
File.ReadAllText(@"pathToYourFile").Contains(@"Converting table AM014
Table 'AM014' (522 records) is converted")
Обратите внимание на прерыватель строки. или же
File.ReadAllText(@"pathToYourFile").Contains("Converting table AM014\r\nTable 'AM014' (522 records) is converted")
Спасибо вам за помощь! Это действительно было из-за места. Не только было \ r \ n, но когда я открыл его с помощью Notepad ++, там был специальный символ NUL, из-за которого мне пришлось использовать \ n \ x00 \ r \ n, чтобы получить результат
Я бы использовал для этого регулярное выражение. Регулярное выражение будет: Converting table (\w+)\b\W+Table.+?converted
var regex = new Regex(@"Converting table (\w+)\b\W+Table.+?converted");
var matches = regex.Matches(input);
foreach(Match match in matches)
{
Console.WriteLine(match.Groups[0].Value); // The whole string that matches.
Console.WriteLine("Table: " + match.Groups[1].Value); // Table name
}
По сути, регулярное выражение ищет строку, начинающуюся с Converting table <a word>
, за которой сразу следует Table <the shortest string of characters> converted
. Самое приятное то, что вы получаете имя таблицы во второй совпавшей группе, то есть match.Groups[1].Value
.
Вы можете увидеть, как это работает, здесь: https://regex101.com/r/AJeVub/1
как насчет проверки количества строк
var isSuccess = File.ReadLines(@"pathToYourFile").Count() == 2;
Можете ли вы обновить вопрос с помощью кода, который вы пробовали?