РефератыИнформатика, программированиеКоКонсольное приложение на Дельфи

Консольное приложение на Дельфи

Хоть и консольные приложения уже давно вышли из моды, с помощью них можно легко делать рутинные операции. Они занимают не так много места, не требовательны к ресурсам и быстро выполняются. В этой статье мы рассмотрим создание простейшего консольного приложения


Intro


Надеюсь, я вас убедил, что консольные программы в "домашнем хозяйстве" это есть гуд. Можно наделать кучу программок, со смешным размером, помогающих практически во всем. Но как же написать такое приложение? Сейчас расскажу.


Что бы написать консольное приложение нужно в меню Project выбрать команду View Source. Затем закрыть Все юниты, которые были в проекте и оставить "голый" dpr файл проекта. Его нужно привести к такому виду:


program Project1;


{$APPTYPE CONSOLE}


begin


end.


Директива {$APPTYPE CONSOLE} предназначена для компилятора и сообщает ему, что программу нужно генерировать как консольное приложение.


Следует обратить внимение на то, что в Windows спользуется кодировка символов ANSI, а в досе ASCII. Из-за этого вместо русских символов мы рискуем увидеть абракадабру. Для преобразования русских символов в ASCII в каждом вашем проекте будет нужна функция


function AnsiToAscii(s : string):string;


var i : Integer;


begin


for i:=1 to length(s) do


begin


case s[i] of


'А'..'п' : s[i]:=Chr(ord(s[i])-64);


'р'..'я' : s[i]:=Chr(ord(s[i])-16);


end;


end;


AnsiToAscii:=s


end;


Write и WriteLn


Для вывода сообщений в окно применяются процедуры Write и WriteLn. Их основное отличие друг от друга состоит в том, что после выполнения процедура Write каретка остается после слова, а после WriteLn перемещается на новую строку. Пример:


Write('Some text');


write('else some text');


Мы увидим:


Some textelse some text.


WriteLn('Some text');


Write('else some text');


Мы увидим:


Some text


else some text


Read и ReadLn


Процедуры Read и ReadLn предназначены

для ввода в программу значений переменных, т.е. считывания введенных пользователем значений. Они отличаются друг от друга тем, что после выполнения процедуры Read можно прочитать той же функцией число, стоящее после другого числа. А если мы применим ReadLn, то все значения, после первого, игнорируются и каретка перемещается на следующюю строку.


Outro


Ну и на последок небольшой пример:


program kilometerstometters;


{$APPTYPE CONSOLE}


uses


SysUtils;


function AnsiToAscii(s : string):string; //эта функция позволяет отображать


var i : Integer; //русские символы


begin


for i:=1 to length(s) do


begin


case s[i] of


'A'..'ï' : s[i]:=Chr(ord(s[i])-64);


'ð'..'ÿ' : s[i]:=Chr(ord(s[i])-16);


end;


end;


AnsiToAscii:=s


end;


var


metters, kilometers : Integer;


comm : String;


t : Boolean=false;


label


b;


begin


metters := 0; //инициализация переменных


kilometers := 0;


comm := '';


t := false;


writeln('(C)Brutus, 2003, http://pz1.traffichouse.de');


b:


t := false;


writeln(AnsiToAscii('Введите величину в километрах и нажмите ')+'[Enter]');


write('->');


try


readln(kilometers);


metters := kilometers*1000;


except


writeln(AnsiToAscii('Ошибка! Введите правильное число.'));


t := true;


end;


if t=true then goto b;


writeln(AnsiToAscii('Результаты:'));


writeln(AnsiToAscii(IntToStr(kilometers)+' километров это '+IntToStr(metters)+' метров'));


writeln(AnsiToAscii('Введите слово ')+'''again'''+AnsiToAscii(', что бы перевести еще что нибудть. Что бы выйти нажмите просто ')+'[Enter]');


try


readln(comm);


if (comm='again') or (comm='''again''') then t := true;


except


end;


if t=true then goto b;


end.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Консольное приложение на Дельфи

Слов:460
Символов:4557
Размер:8.90 Кб.