Старый 28.07.2005, 09:35   #1   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
создание ключей программы...

подскажите плз как это организовать, чтобы работало подобное: <ИМЯ.ПРОГИ> ++<ключи>
желательно на C/C++/Pascal...
  Ответить с цитированием
Старый 29.07.2005, 12:02   #2   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
подскажите плз... а то хатю к проге обзор клавишь сделать ключом /?
  Ответить с цитированием
Старый 29.07.2005, 12:32   #3   
Форумец
 
Аватар для logged in
 
Сообщений: 144
Регистрация: 02.07.2005
Возраст: 42

logged in вне форума Не в сети
в делфи в модуле system.pas есть функция paramstr(index: integer)
где index - порядковый номер параметра командной строки. функция возвращает тебе этот параметр в виде строки. первый параметр после имени исполняемого файла имеет номер 1. если параметр состоит из нескольких слов разделенных пробелами то его (параметр) надо заключить в двойные кавычки когда пишешь его в командной строке.
далее при старте програмки пишешь типа:

if paramstr(1)='/?' then begin
//тут выводишь свой хелп
end;
  Ответить с цитированием
Старый 30.07.2005, 00:08   #4   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
буду благодарен если ты выкрутишь тело функции из модуля и кинешь её сюда 8)...
  Ответить с цитированием
Старый 30.07.2005, 15:10   #5   
Форумец
 
Аватар для logged in
 
Сообщений: 144
Регистрация: 02.07.2005
Возраст: 42

logged in вне форума Не в сети
function ParamStr(Index: Integer): string;
{$IFDEF MSWINDOWS}
var
P: PChar;
Buffer: array[0..260] of Char;
begin
Result := '';
if Index = 0 then
SetString(Result, Buffer, GetModuleFileName(0, Buffer, SizeOf(Buffer)))
else
begin
P := GetCommandLine;
while True do
begin
P := GetParamStr(P, Result);
if (Index = 0) or (Result = '') then Break;
Dec(Index);
end;
end;
{$ENDIF}
{$IFDEF LINUX}
begin
if Index < ArgCount then
Result := PCharArray(ArgValues^)[Index]
else
Result := '';
{$ENDIF}
end;
  Ответить с цитированием
Старый 31.07.2005, 01:38   #6   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
мдя... толку мало... все функции распиханы по модулям, которых в паскале нету, а как писать свой обрабочик я так и непнял... 8(
  Ответить с цитированием
Старый 01.08.2005, 07:19   #7   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
кто может помочь с ключами в С/С++ ??
  Ответить с цитированием
Старый 01.08.2005, 08:11   #8   
джиксеровод
 
Аватар для umka
 
Сообщений: 1,868
Регистрация: 25.11.2003

umka вне форума Не в сети
Вообще гугол может помочь, он не помогает только ленивым.

Под вендоуз:
Сурсы CommandLineToArgvW и CommandLineToArgvA:
http://alter.org.ua/docs/win/args/index.php?lang=ru&

Коммандную строку получать апишной функцией GetCommandLine.


Есть также POSIX совместимая функция стандартная getopt.
Когда то писал аналог простенького bash под Windows. Сурсы getopt брал из сурсов FreeBSD, под виндоуз портанулись без особых проблем.
  Ответить с цитированием
Старый 01.08.2005, 09:05   #9   
Форумец
 
Сообщений: 214
Регистрация: 06.05.2005

wint вне форума Не в сети
Цитата:
Вообще гугол может помочь, он не помогает только ленивым.
вывод: зачем вообще форум если есть поисковики...

спасиб за пост...
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind