Язык программирования Перфолента.Net - Официальный сайт

 Язык программирования Перфолента.Net - Официальный сайт.

Поиск   
Главная :: О проекте :: Контакты :: Обратная связь :: Благодарности :: ВходГость

   >   >   > 


Пример «Работа с консолью»

Файлы:

  • Прикладные задачи
    • Работа с консолью.перфо

Пример программы на языке программирования Перфо:



      //В основе консоли лежит буфер в памяти W1 на H1 символов по ширине и высоте
      //Этот буфер мы можем видеть через окно буфера размером W2 на H2 символов
      //Окно должно полностью располагаться в границах буфера, иначе будет вызвано исключение
            
      //Размер окна консоли задается в пикселях, 
      //а размер окна буфера задается в символах
      //свойства и методы окна буфера имеют в имени слово Окно
      //а свойства и методы окна консоли  имеют в имени слово Консоль
    
      ////можно импортировать пространство имен и не писать слово Консоль перед командами    
      //(ИмпортИмен Промкод.Перфолента.Консоль) 
      //например: вместо (Уст Консоль.ЛевоКонсоли 100) можно писать (Уст .ЛевоКонсоли 100)
      //обратите внимание, что точка перед ЛевоКонсоли остается!!!

      //(Консоль.НеИзменятьРазмерКонсоли)  
      
      //установим положение окна консоли в пикселях
      (Уст Консоль.ЛевоКонсоли 100)
      (Уст Консоль.ВерхКонсоли 100)
      
      //размеры окна консоли можно и не устанавливать
      //если будем устанавливать размеры окна буфера
      (Уст Консоль.ШиринаКонсоли 380) 
      (Уст Консоль.ВысотаКонсоли 200)
 
      //это необходимо, что бы не было ошибки при установке размера буфера.
      //ошибка произойдет, если новый размер буфера окажется меньше размера окна по умолчанию...
      (Консоль.РазмерОкна 1 1)

      (Уст Консоль.ШиринаБуфера (Если (< Консоль.МаксШиринаБуфера 80) Консоль.МаксШиринаБуфера 80))
      (Уст Консоль.ВысотаБуфера (Если (< Консоль.МаксВысотаБуфера 1000) Консоль.МаксВысотаБуфера 1000))
      //альтернативный вариант
      (Консоль.РазмерБуфера 80 1000)

      //можно сделать фиксированное окно без полос прокрутки
      //(Консоль.РазмерБуфера 80 25)

      //при установке окна буфера изменится и размер окна консоли
      //надо следить, что бы размер окна буфера с учетом его положения не вылез за границы буфера 
      (Уст Консоль.ЛевоОкна 0)
      (Уст Консоль.ВерхОкна 0)
      //(Уст Консоль.ШиринаОкна 80)
      //(Уст Консоль.ВысотаОкна 25)
      (Консоль.РазмерОкна 80 25)
 
      (Уст Консоль.Заголовок "Моё консольное приложение")
      
        
      (Уст Консоль.ЦветТекста ЦветаКонсоли.Желтый) 
      (Уст Консоль.ЦветФона ЦветаКонсоли.ТемноСиний)  
      (Консоль.Очистить)  
      
      (Консоль.Показать)
      
      
      (Уст Консоль.ЦветТекста ЦветаКонсоли.Зеленый) 
      
      (Консоль.Сообщить "Текст сообщения без статуса" СтатусСообщения.БезСтатуса)
      (Уст Консоль.КурсорЛево 5)
      
      (Консоль.Состояние "Сделано мало, только четверть!" 25) 
      (Уст Консоль.КурсорЛево 10)
      (Консоль.Предупреждение "Текст простого предупреждения")
      
      
      (Уст Консоль.ЦветТекста ЦветаКонсоли.Белый) 
      (Уст Консоль.ЦветФона ЦветаКонсоли.ТемноСерый) 
      (Консоль.ПозицияКурсора 2 2)
      //обратите внимание, что вместо Неопределено можно использовать символ подчеркивания...
      (Консоль.Предупреждение "Текст предупреждения Информация" _ _ ВидыПредупреждения.Информация Истина)
      
      (Консоль.ПозицияКурсора 7 7)
      (Уст Консоль.ЦветФона ЦветаКонсоли.ТемноФиолетовый) 
      (Консоль.Предупреждение "Текст предупреждения Сообщение" Неопределено "Это моё сообщение" ВидыПредупреждения.Сообщение Истина)
      
      (Консоль.ПозицияКурсора 20 5)
      (Уст Консоль.ЦветФона ЦветаКонсоли.ТемныйЦиан) 
      (Консоль.Предупреждение "Ооооооооооооооооооооооооочень длинный Текст предупреждения Ошибка ооооооооо оооооооооо оооооооооооооооооо" Неопределено Неопределено ВидыПредупреждения.Ошибка Истина)
      
      (Консоль.ПозицияКурсора 25 8)
      (Уст Консоль.ЦветФона ЦветаКонсоли.Черный) 
      (Консоль.Предупреждение "Текст предупреждения Вопрос" Неопределено Неопределено ВидыПредупреждения.Вопрос Истина)
      
      (Консоль.ПозицияКурсора 4 6)
      (Уст Консоль.ЦветФона ЦветаКонсоли.ТемноЖелтый) 
      (Консоль.Предупреждение "Текст предупреждения Предупреждение" Неопределено Неопределено (ВидыПредупреждения.Предупреждение) Истина)
      
      (Консоль.ПозицияКурсора 14 16)
      (Уст Консоль.ЦветФона (ЦветаКонсоли.ТемноЗеленый)) 
      (Перем Ответ (Консоль.Вопрос "Мой главный вопрос. Будешь?" РежимДиалогаВопрос.ПрерватьПовторитьПропустить _ _ _ _ Истина))
      
      (Очистить)
      (Если (= Ответ КодВозвратаДиалога.Прервать)
          (Вывод "Вы выбрали Прервать!" пс)
      (Если (= Ответ КодВозвратаДиалога.Повторить)
          (Вывод "Вы выбрали Повторить!" пс)
      (Если (= Ответ КодВозвратаДиалога.Пропустить)
          (Вывод "Вы выбрали Пропустить!" пс)
      )))  
      
      (Консоль.ПозицияКурсора 3 3)
      (Перем Ответ (Консоль.Вопрос "Завершить Программу?" РежимДиалогаВопрос.ДаНетОтмена))
      
      (Консоль.ПереносСтроки)  
      (Если (= Ответ КодВозвратаДиалога.Да)
          (Вывод "Вы выбрали Да!" пс)
      (Если (= Ответ КодВозвратаДиалога.Нет)
          (Вывод "Вы выбрали Нет!" пс)
      (Если (= Ответ КодВозвратаДиалога.Отмена)
          (Вывод "Вы выбрали Отмена!" пс)
      )))  
      
      (Консоль.ПереносСтроки)  
      (Вывод "Выб диска:" пс)
      (Перем Диски (. ФС.ВыбратьДиски ВМассивСтрок))
      (Перем Выб (Консоль.ГоризонтальноеМеню Диски))
      (Очистить)
      (Вывод "Вы выбрали диск: " (ПЭЛ Диски Выб.Индекс) пс)
      
      (Консоль.ПереносСтроки)  
      (Вывод  "Выб диска:" пс)
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ВертикальноеМеню Диски))
      (Вывод "Вы выбрали диск: " (ПЭЛ Диски Выб.Индекс) пс)
      
      (Консоль.ПереносСтроки)  
      (Вывод "Выб диска:" пс)
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ВертикальноеМеню Диски Неопределено Неопределено Неопределено Ложь)) 
      (Очистить)
      (Вывод "Вы выбрали диск: " (ПЭЛ Диски Выб.Индекс) пс)
      

      //проверка поля ввода  
      
      (Консоль.ПереносСтроки)  
      (Вывод "Ввод ФИО (с прокруткой текста в поле ввода):" пс)
      (Перем ФИО "Петров Электрон Иванович")  
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ПолеВвода 12 ФИО Неопределено 3))
      (Вывод "Вы ввели: " ФИО пс)
      
      (Консоль.ПереносСтроки)  
      (Вывод "Ввод ФИО (текст короче поля):" пс)
      (Перем ФИО "Петров Электрон Иванович")  
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ПолеВвода 40 ФИО))
      (Вывод "Вы ввели: " ФИО)
      
      //проверка списка  
      
      (Консоль.ПереносСтроки)  
      (Вывод "Выб дня недели:" пс)
      (Перем Спис (Массив 11 Строка "Понедельник" "Вторник" "Среда" "Четверг" "Пятница" "Суббота" "Воскресенье" "Отдыхальник" "Бухальница" "Лентяйник" "Притворник" "Бездельнек"))  
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ПолеСписка 20 6 Спис))
      (Очистить)
      (Вывод "Вы выбрали день: " (ПЭЛ Спис Выб.Индекс) пс)
      
      //проверка списка с пометками 
 
      (Консоль.ПереносСтроки)  
      (Вывод "Установите пометки на несколько дней недели (клавишей Пробел):" пс)
      (Перем Пометки (Массив Спис.ВГраница Булево))
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ПолеСписка 20 6 Спис Неопределено Неопределено Неопределено Неопределено Пометки))
      (Очистить)
      (Вывод "Вы выбрали день: " (ПЭЛ Спис Выб.Индекс) пс)
      (Для(Инд 0 Пометки.ВГраница)
        (Вывод (ПЭЛ Спис Инд) (Если(ПЭЛ Пометки Инд) " [Х]" " [ ]") пс)
      )
      
      //проверка списка с пометками 
 
      (Консоль.ПереносСтроки)  
      (Вывод "Установите пометку на один из дней недели (клавишей Пробел):" пс)
      (Перем Пометки (Массив Спис.ВГраница Булево))
      (Уст Консоль.КурсорЛево 3)
      (Перем Выб (Консоль.ПолеСписка 20 6 Спис _ _ _ _ Пометки Истина))
      (Очистить)
      (Вывод "Вы выбрали день: " (ПЭЛ Спис Выб.Индекс) пс)
      (Для(Инд 0 Пометки.ВГраница)
        (Вывод (ПЭЛ Спис Инд) (Если(ПЭЛ Пометки Инд) " (*)" " ( )") пс)
      )
 

      (Консоль.Состояние "Состояние: Программа полностью завершена!" 100) 
      

К началу статьи


Вернуться в раздел:
Примеры по языку Перфо

Перейти в раздел:
Примеры
  Поддержи проект!

Вы можете поддержать разработку Перфоленты, перечислив любую удобную сумму, которая пойдет на развитие языка и поддержку инфраструктуры сайта.

  Новости:
      21.01.2026 На сайт добавлена статья "Конструируем класс. События"
      20.01.2026 Опубликован новый релиз 0.4.18.0_NY языка программирования Перфолента.Net
      29.12.2025 Анонс: Новая возможность - разрабатываем веб-сайты, веб-приложения и веб-API на Перфоленте!
      07.06.2025 Небольшие дополнения к документации на сайте - описание атрибута поля &Атомарное
      09.05.2025 На сайте опубликован релиз 0.4.16.0_SE дистрибутива языка программирования Перфолента.Net
      27.04.2025 Дополнена статья про циклы
      04.01.2025 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.15.0_CE
      23.09.2024 Опубликована новая статья: "Конструируем класс. Делегаты."
      30.08.2024 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.14.0
      24.05.2024 Обновлён справочный раздел сайта
      01.07.2023 Новая версия 0.4.13.0 языка программирования Перфолента.Net
       Все новости