Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск строк в тхт файле по ключевым словам в C#

1.8K
03 октября 2017 года
alcatraz_kms
148 / / 01.10.2013
Подскажите код, который будет работать по такой схеме
В зависимости от выделенных элементов чекбоксов (см. скрин) а в коде программы:
• первый чекбокс имеет статичное значение [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();
        }
PS: Остальные элементы программы работают
1
03 октября 2017 года
kot_
7.3K / / 20.01.2000
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?
1.8K
04 октября 2017 года
alcatraz_kms
148 / / 01.10.2013
Цитата: kot_
Строка должна начинаться с ключевого слова? или нужно вывести все строки его содержащие?

все строки

1
04 октября 2017 года
kot_
7.3K / / 20.01.2000
Цитата: 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;// останавливаем цикл
Во первых зачем его останавливать если вам нужны все строки, во вторых в чем смысл присваивания?
1.8K
04 октября 2017 года
alcatraz_kms
148 / / 01.10.2013
Цитата: 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;// останавливаем цикл
Во первых зачем его останавливать если вам нужны все строки, во вторых в чем смысл присваивания?

да это пробный, а так нужно конечно forech юзать,
А данный код работает в одном направлении т.е. находит один символ (слово) и все

1
04 октября 2017 года
kot_
7.3K / / 20.01.2000
ну так а чего вы хотели?
Уберите условия прерывания цикла и используйте для сравнения подходящую функцию.
Ну и найденные строки надо добавлять в список а не в поле поиска. Такое впечатление что это не ваш код
1.8K
05 октября 2017 года
alcatraz_kms
148 / / 01.10.2013
Вопрос по srteamReader, что нужно написать чтобы искал только *.log
т.е.
пишу
streamreader str = new streamreader(@" sr-01c$ logs *.log");
while (!str.endofstream)
{
...
}


C# говарит, что неверно указан путь, символы и т.п., вообщем ему не нравится такая маска sr-01c$logs*.log
Вопрос, что нужно написать, чтобы он понял, что мне надо искать *.log в данном каталоге????
1.8K
05 октября 2017 года
alcatraz_kms
148 / / 01.10.2013
Цитата: alcatraz_kms
Вопрос по srteamReader, что нужно написать чтобы искал только *.log
т.е.
пишу
streamreader str = new streamreader(@" sr-01c$ logs *.log");
while (!str.endofstream)
{
...
}


C# говарит, что неверно указан путь, символы и т.п., вообщем ему не нравится такая маска sr-01c$logs*.log
Вопрос, что нужно написать, чтобы он понял, что мне надо искать *.log в данном каталоге????

мда косую черту удаляет сайт в адресе каталога

327
05 октября 2017 года
UserNet2008
748 / / 03.04.2010
 
Код:
using System.IO;

var log_Files = Directory.EnumerateFiles(@"C:\MyDir", "*.log");
foreach (string currentFile in log_Files)
                {
                    //ваш код
                }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог