Поиск строк в тхт файле по ключевым словам в C#
В зависимости от выделенных элементов чекбоксов (см. скрин) а в коде программы:
• первый чекбокс имеет статичное значение [ERROR]
• второй чекбокс имеет статичное значение [WARN ]
• третий чекбокс имеет статичное значение [SKIP ]
После нажатия кнопки «Запуск проверки» программа полезит в папку на удаленной машине где лежат файлы (тхт). В них ищет строки с ключевыми словами и выводит в list.box
Вот набросал код, но он малость не подходит
Код:
private void button2_Click(object sender, EventArgs e)
{
StreamReader str = new StreamReader(@"\termlogs*.txt");
while (!str.EndOfStream)
{
string st = str.ReadLine();
if (st.StartsWith(textBox1.Text))
{
textBox1.Text = st;
break;// останавливаем цикл
}
}
str.Close();
}
{
StreamReader str = new StreamReader(@"\termlogs*.txt");
while (!str.EndOfStream)
{
string st = str.ReadLine();
if (st.StartsWith(textBox1.Text))
{
textBox1.Text = st;
break;// останавливаем цикл
}
}
str.Close();
}
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?
Цитата: kot_
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?
все строки
Цитата: alcatraz_kms
Цитата: kot_
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?
все строки
Ну?
Поздравляю, вы сами себе ответили на вопрос. Из описания функции которую вы сейчас испоьзуете:
Determines whether the beginning of this string instance matches the specified string when compared using the specified comparison option.
И кстати в чем смысл этого:
Код:
textBox1.Text = st;
break;// останавливаем цикл
break;// останавливаем цикл
Цитата: kot_
Цитата: alcatraz_kms
Цитата: kot_
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?
все строки
Ну?
Поздравляю, вы сами себе ответили на вопрос. Из описания функции которую вы сейчас испоьзуете:
Determines whether the beginning of this string instance matches the specified string when compared using the specified comparison option.
И кстати в чем смысл этого:
Код:
textBox1.Text = st;
break;// останавливаем цикл
break;// останавливаем цикл
да это пробный, а так нужно конечно forech юзать,
А данный код работает в одном направлении т.е. находит один символ (слово) и все
Уберите условия прерывания цикла и используйте для сравнения подходящую функцию.
Ну и найденные строки надо добавлять в список а не в поле поиска. Такое впечатление что это не ваш код
т.е.
пишу
streamreader str = new streamreader(@" sr-01c$ logs *.log");
while (!str.endofstream)
{
...
}
C# говарит, что неверно указан путь, символы и т.п., вообщем ему не нравится такая маска sr-01c$logs*.log
Вопрос, что нужно написать, чтобы он понял, что мне надо искать *.log в данном каталоге????
Цитата: alcatraz_kms
Вопрос по srteamReader, что нужно написать чтобы искал только *.log
т.е.
пишу
streamreader str = new streamreader(@" sr-01c$ logs *.log");
while (!str.endofstream)
{
...
}
C# говарит, что неверно указан путь, символы и т.п., вообщем ему не нравится такая маска sr-01c$logs*.log
Вопрос, что нужно написать, чтобы он понял, что мне надо искать *.log в данном каталоге????
т.е.
пишу
streamreader str = new streamreader(@" sr-01c$ logs *.log");
while (!str.endofstream)
{
...
}
C# говарит, что неверно указан путь, символы и т.п., вообщем ему не нравится такая маска sr-01c$logs*.log
Вопрос, что нужно написать, чтобы он понял, что мне надо искать *.log в данном каталоге????
мда косую черту удаляет сайт в адресе каталога
Код:
using System.IO;
var log_Files = Directory.EnumerateFiles(@"C:\MyDir", "*.log");
foreach (string currentFile in log_Files)
{
//ваш код
}
var log_Files = Directory.EnumerateFiles(@"C:\MyDir", "*.log");
foreach (string currentFile in log_Files)
{
//ваш код
}