Проверка условий ввода данных в textBox - C#

Узнай цену своей работы

Формулировка задачи:

Вводится последовательность слов, их должно быть не меньше 12, длинна от 1 до 5, разделитель - запятая, за последним словом - точка. Нужно проверить нет ли за последним словом 2-х точек, проверить строку на пустоту, длину слов и их количество. Когда выводится сообщение о 1 ошибке, остальные не проверять. Собственно не получается проверить пустую строку и 2 точки (просто не понимаю как это сделать).
Листинг программы
  1. public void Task() //метод реализации рограммного задания
  2. {
  3. if (Data.Length > 0)
  4. MessageBox.Show("Пустая строка!");
  5. else
  6. if (Data[Data.Length - 1] != '.')
  7. {
  8. MessageBox.Show("В конце строки должна быть 1 точка!");
  9. }
  10. else
  11. {
  12. char[] usl = { ',' };
  13. string[] parts = this.Data.Split(usl);
  14. if (parts.Rank < 12)
  15. {
  16. MessageBox.Show("Содержится меньше 12 слов!");
  17. }
  18. else
  19. {
  20. for (int i = 0; i < parts.Rank; i++)
  21. {
  22. if ((parts[i].Length >= 1) & (parts[i].Length < 6))
  23. MessageBox.Show("В словах меньше 1 или больше 5 знаков");
  24. }
  25. }
  26. }

Решение задачи: «Проверка условий ввода данных в textBox»

textual
Листинг программы
  1. [TestClass]
  2.     public class MessageCheckerTests
  3.     {
  4.         [TestMethod]        
  5.         public void EmptyText()
  6.         {
  7.             var str = "";
  8.             var checker = new MessageChecker();
  9.             var ex = AssertException.Throws<MessageCheckException>(()=> checker.Check(str));
  10.             Assert.AreEqual(ex.ErrorType, MessageError.EmptyString);
  11.         }
  12.  
  13.         [TestMethod]        
  14.         public void LessThen12()
  15.         {
  16.             var str = "abcde,abcde.";
  17.             var checker = new MessageChecker();
  18.             var ex = AssertException.Throws<MessageCheckException>(() => checker.Check(str));
  19.             Assert.AreEqual(ex.ErrorType, MessageError.WordsCount);
  20.         }
  21.  
  22.         [TestMethod]        
  23.         public void WordLengthIsZero()
  24.         {
  25.             var str = "abcde,abcde,,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde.";
  26.             var checker = new MessageChecker();
  27.             var ex = AssertException.Throws<MessageCheckException>(() => checker.Check(str));
  28.             Assert.AreEqual(ex.ErrorType, MessageError.WordLength);
  29.         }
  30.  
  31.         [TestMethod]
  32.         public void WordLengthGreaterThen5()
  33.         {
  34.             var str = "abcde,abcdef,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde.";
  35.             var checker = new MessageChecker();
  36.             var ex = AssertException.Throws<MessageCheckException>(() => checker.Check(str));
  37.             Assert.AreEqual(ex.ErrorType, MessageError.WordLength);
  38.         }
  39.  
  40.         [TestMethod]
  41.         public void DotSkipped()
  42.         {
  43.             var str = "abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde";
  44.             var checker = new MessageChecker();
  45.             var ex = AssertException.Throws<MessageCheckException>(() => checker.Check(str));
  46.             Assert.AreEqual(ex.ErrorType, MessageError.DotAtEndSkipped);
  47.         }
  48.  
  49.         [TestMethod]
  50.         public void MultipleDots()
  51.         {
  52.             var str = "abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde,abcde..";
  53.             var checker = new MessageChecker();
  54.             var ex = AssertException.Throws<MessageCheckException>(() => checker.Check(str));
  55.             Assert.AreEqual(ex.ErrorType, MessageError.MultipleDotsAtEnd);
  56.         }        
  57.     }
  58.  
  59.     public class MessageChecker
  60.     {
  61.         public void Check(string msg)
  62.         {
  63.             if (msg.Length == 0)
  64.                 throw new MessageCheckException(MessageError.EmptyString, "Пустая строка!");
  65.             else if (msg.Last() != '.')
  66.             {
  67.                 throw new MessageCheckException(MessageError.DotAtEndSkipped, "В конце строки должна быть 1 точка!");
  68.             }
  69.             else if (msg.Last() == '.' && msg.Length > 1 && msg[msg.Length - 2] == '.')
  70.             {
  71.                 throw new MessageCheckException(MessageError.MultipleDotsAtEnd, "В конце строки должна быть только 1 точка!");
  72.             }
  73.             else
  74.             {
  75.                 char[] usl = { ',' };
  76.                 string[] parts = msg.Split(usl);
  77.                 if (parts.Length < 12)
  78.                 {
  79.                     throw new MessageCheckException(MessageError.WordsCount, "Содержится меньше 12 слов!");
  80.                 }
  81.                 else
  82.                 {
  83.                     for (int i = 0; i < parts.Length; i++)
  84.                     {
  85.                         if ((parts[i].Length < 1) || (parts[i].Length > 5))
  86.                             throw new MessageCheckException(MessageError.WordLength, "В словах меньше 1 или больше 5 знаков");
  87.                     }
  88.                 }
  89.             }
  90.         }
  91.     }
  92.  
  93.     public enum MessageError
  94.     {
  95.         EmptyString,
  96.         WordsCount,
  97.         WordLength,        
  98.         DotAtEndSkipped,
  99.         MultipleDotsAtEnd
  100.     }
  101.  
  102.     public class MessageCheckException : Exception
  103.     {
  104.         public MessageCheckException(MessageError errorType, string msg) : base(msg)
  105.         {
  106.             ErrorType = errorType;
  107.         }
  108.  
  109.         public MessageError ErrorType { get; private set; }
  110.     }
  111.  
  112.     public static class AssertException
  113.     {
  114.         public static T Throws<T>(Action action) where T : Exception
  115.         {
  116.             try
  117.             {
  118.                 action();
  119.             }
  120.             catch (T ex)
  121.             {
  122.                 return ex;
  123.             }
  124.  
  125.             Assert.Fail("Expected exception of type {0}.", typeof(T));
  126.  
  127.             return null;
  128.         }
  129.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут