Хелпикс

Главная

Контакты

Случайная статья





КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ в Delphi



Консольным называется приложение, имитирующее работу в текстовом режиме.

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

Ввод/вывод данных осуществляется с помощью процедур read, readln, write и writeln.

К консольному приложению автоматически подключаются файлы input и output. Несмотря на то, что пользователь работает с консольным приложением так же, как с DOS-программой, оно является приложением Windows и не работает под DOS.

Достоинство консольных приложений – относительная простота использования и лёгкость переноса программ, написанных на языке Pascal, в систему программирования Delphi. Кроме того, исполняемый ехе-файл консольной программы намного меньше по размеру (десятки килобайт) по сравнению с исполняемым файлом Delphi-варианта такой же программы (сотни килобайт).

Проще всего создать консольное приложение через репозиторий. В репозитории (команда File|New|Other) на странице New имеется объект Console Аpplication, представляющий собой Console Wizard – Мастер консольного приложения. Если выбрать этот объект, то будет создан новый проект, состоящий из одного файла с расширением dpr. Этот файл и является консольной программой. Созданный Мастером код похож на заготовку обычной программы на языке Pascal, написанной под DOS. Единственным отличием является директива $APPTYPE, которая значением CONSOLE сообщает компилятору, что Delphi-программа работает в консольном режиме.

Консольное приложение можно создать также на основе проекта обычного приложения следующим образом. Первоначально по команде File|New|Aplication создаётся новое приложение. Консольное приложение не включает формы, поэтому из проекта нужно удалить форму Form1. С этой целью по команде Project|Remove from Project (Проект|Удалить из проекта) вызывается диалоговое окно Remove from Project удаления форм из проекта, в котором для данного проекта содержится один модуль unit1 формы. Нужно выбрать этот модуль и удалить его.

Затем вызывается окно редактора кода, в нем открывается файл проекта (dpr), в который вносятся соответствующие изменения.

Далее к заготовке консольного приложения добавляется необходимый код. Как и любая программа на языке Pascal, консольное приложение может включать отдельные модули.

program demo;

{$APPTYPE CONSOLE}

uses SysUtils;

begin

writeln('Проверка');

end.

Завершив работу с консольным приложением, нужно нажать клавишу Enter. После этого окно, в котором функционировало консольное приложение, автоматически будет закрыто.

Консольное приложение Delphi представляет собой не просто программу, написанную на языке Object Pascal и выполняемую в среде Windows. Система Delphi поддерживает создание 32-разрядных консольных приложений, имеющих доступ к ресурсам операционной системы и использующих различные функции API Windows. При этом в разделе uses нужно подключать модули, средства которых применяются в программе. Для организации ввода-вывода информации используются стандартные процедуры:

Read(< файловая_переменная>, < список_ввода> );

Readln(< файловая_переменная>, < список_ввода> );

Write(< файловая_переменная>, < список_вывода> );

Writeln(< файловая_переменная>, < список_вывода> );

Первым параметром в любой из перечисленных процедур может стоять файловая переменная. В этом случае выполняется обращение к дисковому файлу или логическому устройству, связанному с файловой переменной. Если файловая переменная не указана, то подразумевается использование текстовых файлов input или output. Input используется при чтении данных с клавиатуры, а output – при выводе данных на экран:

Read (a, b, x2);

Readln (p, q5);

Write (n: 5, x: 4: 1; y: 7: 2);

Writeln (name, ' ': 3, 2*x+3: 6: 0);

Специфика обработки текстовых файлов заключается в том, что процедуры ввода-вывода позволяют работать со значениями не только символьного типа: фактическими параметрами могут быть символы, строки и числа. Последовательность символов автоматически преобразуется к значению переменной того типа, который задан в списке ввода-вывода.

При вводе числовых значений процедура Read выделяет подстроку по следующему правилу:

· все ведущие пробелы, символы табуляции и маркеры конца строк пропускаются;

· после появления первого значащего символа любой из перечисленных символов или код конца файла служат признаком конца подстроки.

Выделенная таким образом подстрока рассматривается как символьная запись числа соответствующего типа и преобразуется во внутреннее представление; полученное значение присваивается переменной.

Если при вводе чисел нарушен формат (например описана переменная типа integer, а задано число real), то во время работы программы возникнет ошибка ввода-вывода. Если при пропуске ведущих пробелов встретится символ конца файла, то переменная получит значение ноль.

При вводе с клавиатуры символьные строки запоминаются в буфере. Содержимое буфера передаётся процедуре только после нажатия клавиши Enter. Это позволяет редактировать данные при вводе. Ввод информации сопровождается эхо-повтором на экране.

Отличие процедуры Readln от Read заключается в том, что после считывания последней переменной, фигурирующей в списке ввода, оставшаяся часть строки до маркера конца строки пропускается. Следующее обращение к Readln или Read выполняет чтение с первого символа новой строки. Readln можно использовать без списка ввода, это обеспечивает пропуск строки.

Процедуры Write, Writeln выводят информацию в файл или на логическое устройство. Если файловая переменная описана как текстовая, то список вывода может содержать символы, строки, вещественные и целые числа, а также выражения типа boolean. В последнем случае записывается true или false, в зависимости от текущего значения логической переменной.

Элемент списка вывода, например х, может быть записан в виде x: k: m. Значение k задаёт ширину поля вывода символьного представления переменной x. Если символьное представление имеет меньшую длину, то оно будет дополнено пробелами слева; если длиннее – то параметр k игнорируется и переменная выводится целиком. Параметр m определяет выводимое количество десятичных знаков в дробной части числа. Этот параметр используется только для вещественных чисел и только совместно с параметром k. Если ширина поля вывода не указана, то переменные выводятся подряд, без разделения, вещественные числа записываются в экспоненциальном формате.

При использовании Writeln выводимая строка завершается символами конца строки. Последующее применение процедур Write и Writeln обеспечивает запись информации с новой строки.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.