В лекции 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 /&
то на экране получится следующий результат:
Из командной строки поступило 5 аргументов: 1-й аргумент = abcd 2-й аргумент = -36 3-й аргумент = +25.062 4-й аргумент = -t 5-й аргумент = /&
Хорошим стилем считается включать в программу так называемый внешний help: если в нее можно передавать какие-либо аргументы из командной строки, необходимо сообщить потенциальному пользователю их возможные значения и смысл.
Чаще всего для отображения на экране внешней подсказки используются аргументы ? или /?.
Примером может служить краткая экранная подсказка хорошо известного архиватора arj.exe, которая появляется на экране в случае некорректного обращения к этой программе. Подсказка сообщает пользователю: а) имя программы; б) суть того, что именно появилось на экране; в) правила корректного вызова программы; г) примеры корректного вызова; д) краткий список возможных аргументов (команд и ключей).