|
|||
КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ в 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 обеспечивает запись информации с новой строки.
|
|||
|