Не верно работает else в С# почему?
все хорошо ищет, но если нет ключевых слов то
Код:
else
{ listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
break;
{ listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
break;
Код:
if (st.StartsWith(ora) || st.StartsWith(exp))
{
listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел с ошибками или предупреждениями]")));
break;
}
else
{ listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add("[Бэкап прошел успешно]")));
break;
}
{
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;
}
}
}
}
{
//Проверка файла измененого за текущие сутки
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;
}
}
}
}
else у вас работает верно - просто в одном файле может не быть строк с ошибками а во втором - они есть и вы получите два сообщения. А вы чего ожидали?
st.StartsWith(ora) || st.StartsWith(exp) - C[++] - ШНИК ))) шАРП ТЕБЯ НЕ ПОНИМАЙ ))