Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Передача аргументов из командной строки


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

Однако в языке Pascal нет нарушений единообразия: любая программа тоже способна получать аргументы во время начала работы. Для этого нужно лишь вызывать ее из командной строки следующим образом:

<имя_программы> <список_аргументов>

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

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

Функция paramcount: word возвращает количество аргументов, переданных в программу из командной строки при вызове.

Функция paramstr(k: word): string возвращает k-й аргумент, переданный в программу из командной строки.

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

Например:

program arguments;var i,k,n: word;begin n:= paramcount; writeln('Из командной строки поступило ',n,' аргументов:'); for i:= 1 to n do writeln(i,'-й аргумент = ',paramstr(i));end.

Если теперь вызвать эту программу из командной строки, скажем, с такими аргументами:

arguments abcd -36 +25.062 -t /&amp;

то на экране получится следующий результат:

Из командной строки поступило 5 аргументов:1-й аргумент = abcd2-й аргумент = -363-й аргумент = +25.0624-й аргумент = -t5-й аргумент = /&amp;

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

Чаще всего для отображения на экране внешней подсказки используются аргументы ? или /?.

Примером может служить краткая экранная подсказка хорошо известного архиватора arj.exe, которая появляется на экране в случае некорректного обращения к этой программе. Подсказка сообщает пользователю: а) имя программы; б) суть того, что именно появилось на экране; в) правила корректного вызова программы; г) примеры корректного вызова; д) краткий список возможных аргументов (команд и ключей).



ARJ 2.50a SHAREWARE Copyright (c) 1990-95 ARJ Software. Dec 12 1995List of frequently used commands and switches. Type ARJ -? for more help.Usage: ARJ <command> [-<sw> [-<sw>...]] <archive_name> [<file_names>...]Examples: ARJ a -e archive, ARJ e archive, ARJ l archive *.doc <Commands>a: Add files to archive m: Move files to archived: Delete files from archive t: Test integrity of archivee: Extract files from archive u: Update files to archivef: Freshen files in archive v: Verbosely list contents of archivel: List contents of archive x: eXtract files with full pathname <Switches>c: skip time-stamp Check r: Recurse subdirectoriese: Exclude paths from names s: set archive time-Stamp to newestf: Freshen existing files u: Update files (new and newer)g: Garble with password v: enable multiple Volumesi: with no progress Indicator w: assign Work directorym: with Method 0, 1, 2, 3, 4 x: eXclude selected filesn: only New files (not exist) y: assume Yes on all queries

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

1) Например, "Справочник по процедурам и функциям Borland Pascal with Objects 7.0" (сост. И.И. Дериев, С.В. Токарь. Киев: Диалектика, 1993) или "Программирование на языке Turbo Pascal (версии 6.0 и 7.0). Справочник по процедурам, функциям, диагностическим сообщениям" (сост. В.С. Зубов, М., 1997).
2) "Возможность повторного использования ранее разработанных (программных) компонентов" является точным переводом английского термина reusability. Соответственно, reusable components - это компоненты, допускающие многократное использование.

14. Лекция: Методы создания пользовательского интерфейса:
Дружественный интерфейс и методы его создания. Возможности текстового режима. Простейшая графика.

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



<== предыдущая лекция | следующая лекция ==>
Пример модуля | Текстовый режим

Дата добавления: 2014-01-03; Просмотров: 291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:
studopedia.su - Студопедия (2013 - 2022) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.025 сек.