Я пытаюсь отладить свой код здесь:
private void CheckFormatting()
{
StringReader objReaderf = new StringReader(txtInput.Text);
List<String> formatTextList = new List<String>();
do
{
formatTextList.Add(objReaderf.ReadLine());
}
while (objReaderf.Peek() != -1);
objReaderf.Close();
for (int i = 0; i < formatTextList.Count; i++)
{
if (!Regex.IsMatch(formatTextList[i],
"G[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2} JG[0-9]{2}"))
{
MessageBox.Show("Line " + formatTextList[i] + " is not formatted correctly.",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
else
{
this.WriteToFile();
MessageBox.Show("Your entries have been saved.", "Saved",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
, что он должен сделать, это проверить каждую строку в списке.если один из них не отформатирован правильно, то прервите цикл и отобразите окно сообщения, если все строки отформатированы правильно, он должен вызвать метод WriteToFile.Однако при тестировании с использованием набора входных данных, которые были и были неправильно отформатированы, он вызывал метод WriteToFile, прежде чем отображал сообщение об ошибке и прерывал цикл.Кто-нибудь выяснит почему?Для вас есть несколько точек повторения:)
Заранее спасибо
Примеры:
Они правильно отформатированы:
G20:49:02:10 JG07
G37:84:73:20 JG48
Это неправильно отформатированный:
G47:29:js:20 JG29
Если пользователь вводит
G20:49:02:10 JG07
G47:29:js:20 JG29
G37:84:73:20 JG48
, тогда код должен проверить первую строку, увидеть, что он правильно отформатирован, перейти ко второй строке, увидеть, чтонеправильно отформатирован и прерывает цикл и отображает сообщение об ошибке.
Ответ
private void CheckFormatting()
{
StringReader objReaderf = new StringReader(txtInput.Text);
List<String> formatTextList = new List<String>();
do
{
formatTextList.Add(objReaderf.ReadLine());
}
while (objReaderf.Peek() != -1);
objReaderf.Close();
bool FlagCheck = true;
for (int i = 0; i < formatTextList.Count; i++)
{
if (!Regex.IsMatch(formatTextList[i],
"G[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2} JG[0-9]{2}"))
{
FlagCheck = false;
break;
}
}
if (FlagCheck == true)
{
this.WriteToFile();
MessageBox.Show("Your entries have been saved.", "Saved",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Line " + formatTextList[i] + " is not formatted correctly.",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Спасибо mmyers