Ввод значений перечислимых типов с клавиатуры

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск

В справке PascalABC.NET находится статья о перечислимых типах. Однако она обходит стороной тонкий вопрос о том, как вводить значения перечислимого типа с клавиатуры.

Вводить значения перечислимого типа напрямую (с помощью Read) нельзя. Разумная стратегия состоит в двухходовке: 1) чтение с клавиатуры строки с помощью ReadlnString, 2) преобразование строки в значение перечислимого типа. Второй шаг можно выполнить либо с помощью «большого» case (что не очень удобно), либо с помощью эзотерических средств платформы .NET (см. ниже).

Итак, для любого перечислимого типа MyType удобно определить функцию ReadMyType чтения с клавиатуры следующим образом. Эта функция (без параметров, возвращает MyType) может содержать «большой» case либо одну «волшебную» команду:

Assert(System.Enum.TryParse&<MyType>(ReadlnString, Result), 
       'Введено неверное значение типа MyType');