Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск программы с параметрами командной строки 
V
    Опции темы
ausar
Дата 13.8.2008, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Приветствую!

Подскажите пожалуйста как можно передать параметры в программу из командной строки при запуске программы
Например чтоб при запуске программы можно было присваивать значения переменным к примеру сформировав строку c:\myprog 13 08 2008 параметр 13 присваивался переменной day параметр 08 -переменной month 2008 - year. Иными словами чтоб введенные данные можно было использовать в программе в виде значений переменных.

PM MAIL   Вверх
ama_kid
Дата 13.8.2008, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



ParamStr и ParamCount


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
ausar
Дата 13.8.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Все спасибо разобрался!

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

ParamCount - это количество параметров командной строки. В принципе можно использовать и ругать юзера за то что он ввел недостаточно параметров или наоборот слишком много.

Код

if ParamCount<3 then begin.... 
 smile 

Paramstr(i) -это непосредственно сами параметры. i -здесь определяет номер параметра можно написать и Paramstr(1) Если нам нужен первый параметр.Но тип передаваемых параметров будет string. Т.е если вы хотите передать числовое значение нужно сначала  его сконвертировать например так

Например первый параметр у нас должно быть число
Код

val(ParamStr(1),x,c);

Здесь x - это переменная которая будет хранить полученный результат. А дальше можно и z:=x+2

Вот в принципе и все.

Спасибо ama_kid за толчок в нужное русло smile

Это сообщение отредактировал(а) ausar - 13.8.2008, 10:08
PM MAIL   Вверх
ausar
Дата 20.8.2008, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



И опять пришлось вернуться к теме. Помогите решить проблему.

К примеру мне необходимо проконтролировать ввод пользователя. т.е то что он вводит в качестве параметров запуска программы. Ну с количеством параметров (больше меньше) все понятно. А вот например как отследить чтобы вместо числа пользователь не ввел буквы? Или например мне необходимо чтобы пользователь ввел дробное число с 2мя знаками после запятой и опять же как отследить чтобы он повторно не поставил еще одну запятую или символ?
PM MAIL   Вверх
volvo877
Дата 20.8.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Как получить сами параметры ты уже знаешь. Как ты понимаешь (из описания ParamStr, да и из названия тоже), все параметры - строки. Если тебе надо контролировать правильность числа, заданного строкой, конвертируй строка->число (процедура Val, если параметр не содержит правильную десятичную запись числа, то код ошибки будет ненулевым).

Аналогично и с условием,
Цитата(ausar @  20.8.2008,  09:37 Найти цитируемый пост)
чтобы пользователь ввел дробное число с 2мя знаками после запятой
: 
Код

s := ParamStr(i);
if pos('.', s) <> (length(s) - 3) then { уже ошибка, Val-ом можно не проверять }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.