Консольные приложения в Delphi. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Консольные приложения в Delphi.



Консольное приложение(консоль Мб передана от вызывающей программы к вызываемой)

С помощью системы Delphi 7 можно создавать приложения Windows практически

неограниченной сложности, использующие графический интерфейс. Однако для

тех, кто только начинает знакомство с основными операторами Паскаля, имеется

возможность создания простых программ в стиле MS-DOS {в качестве учебных).

Это так называемые консольные приложения. Внешне они выглядят как программы

с текстовым интерфейсом, но способны обращаться к большинству функций

Windows.

Чтобы создать консольное приложение, надо дать команду File > New >• Other (Файл >

Создать > Другое) и в диалоговом окне New Items (Создание программы) выбрать зна-

чок Console Application (Консольное приложение) (рис. 1.1).

f' New Items

Система 1)е/рЙ1?автоматически сгенерирует в текстовом редакторе исходный код

заготовку будущего приложения.

Основы языка Delphi (Objecl Pascal) 35

program Projectl;

{$APPTYPE CONSOLE)

uaea sysutils;

Begin

{TODO -oUser -cConsole Main: Insert code here}

end.

Код начинается с заголовка программы, состоящего из ключевого слова program и

автоматически сгенерированного названия Projectl.

Далее в виде комментария следует директива компилятора. Она отличается от

обычного комментария тем, что сразу за символом { следует символ $, а следом —

слово, задающее определенную настройку компилятора. Хотя настройки компи-

лятора можно задавать и непосредственно в среде Delphi 7, нужные настройки не

всегда могут быть включены разработчиком вручную, поэтому лучше явно указы-

вать их в тексте там, где они обязательно требуются.

, 1.ир< K i in'.] {5APPTVPE CO.NSOLE} говорит компилятору, ч го д;ши;1!(нршрамма пред-

ставляет собой консольное приложение.

Следующая строка задает подключение стандартного модуля SysUtib с помощью

ключевого слова uses.

Далее идет собственно программа — для нее подготовлен логический блок, внутри

которого система Delphi /добавила комментарий Insert user code here (Вставьте сюда

свой исходный текст).

Обмен информацией

Так как создаваемая программа — консольная, общаться с пользователем с помо-

щью графического интерфейса она не может. Для этого нужны более простые сред-

ства обмена информацией с человеком.

В Паскале имеются две стандартные процедуры ReadLn (для ввода данных) и WriteLn

(для записи данных), которые могут использоваться в консольных приложениях.

Первая процедура выполняет ввод значения с клавиатуры и его передачу в пере-

менную, которая указана в качестве параметра (можно указать и список перемен-

ных — тогда при вводе соответствующие им значения надо разделять пробелами).

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

жений в текущую строку экрана, разделяя их пробелами.

Процедура ReadLn требует, чтобы человек после окончания ввода нажал клавишу

ENTER, а процедура WriteLn после окончания вывода значений осуществляет пере-

вод курсора на следующую строку. Другая процедура вывода, Write, не выполняет

такого перевода и продолжает вывод данных в текущую строку.

ВНИМАНИЕ Переход на следующую строку в процедуре WriteLn происходит

не до, а после вывода значений параметров.

36 Урок 1. Язык Delphi (Object Pascal) и его использование

У процедуры ReadLn может не быть ни одного параметра. Тогда при ее выполнении

программа просто ожидает, когда пользователь нажмет клавишу ENTER. Если не

указан ни один параметр процедуры WriteLn, то на экране произойдет пропуск одной

пустой строчки.

Для первого, пробного запуска в главный логический блок программы можно

поместить один оператор ReadLn — тогда программа просто высветит черное кон-

сольное окно и закроется, когда будет нажата клавиша ENTER.

Begin

ReadLn

end.

Обратите внимание: точку с запятой перед ключевым словом end можно не ставить.__

Др вариант

Консольным называется приложение, имитирующее работу в текстовом режиме. Пользователь работает с программой практически так же, как в среде 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 обеспечивает запись информации с новой строки.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 427; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.31.159 (0.017 с.)