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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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

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

Не верно работает else в С# почему?

6.2K
11 октября
alcatraz_kms
109 / / 01.10.2013
Вот код программы, в котором есть условия поиска ключевых слов в файлах измененных в течении 24 часа
все хорошо ищет, но если нет ключевых слов то
 
Код:
else
{ listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
 break;
но если я вставляю else как обычно после if
Код:
if (st.StartsWith(ora) || st.StartsWith(exp))  
                   {
                       listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел с ошибками или предупреждениями]")));
                       break;
                   }
                 
                   else
                  { listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
                   break;

                   }
то результат такой что в листбокс выводится и
[Бэкап прошел с ошибками или предупреждениями]
и
[Бэкап прошел успешно]

Собственно сам вопрос, куда нужно прописать else, чтоб условия работало?

Код:
private void button1_Click(object sender, EventArgs e)
        {
           //Проверка файла измененого за текущие сутки
           listBox1.Items.Clear();
           var directory = new DirectoryInfo(textBox1.Text);
           DateTime from_date = DateTime.Today;
           DateTime to_date = DateTime.Now;
           var files = directory.GetFiles()
          .Where(file => file.LastWriteTime >= from_date && file.LastWriteTime <= to_date);

           foreach (var f in files)
           {
               String ora = "ORA2-"; // если есть в лог файле ошибки ORA
               String exp = "EXP2-"; // если есть в лог файле ошибки EXP
               StreamReader str3 = new StreamReader(textBox1.Text + f);
               while (!str3.EndOfStream)
               {
                   string st = str3.ReadLine();
                   if (st.StartsWith(ora) || st.StartsWith(exp))  
                   {
                       listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел с ошибками или предупреждениями]")));
                       break;
                   }
                 
                   
                   }

               

               }
       
           }
1
11 октября
kot_
7.3K / / 20.01.2000
else у вас работает верно - просто в одном файле может не быть строк с ошибками а во втором - они есть и вы получите два сообщения. А вы чего ожидали?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог