Russian Qt Forum
Май 03, 2024, 10:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программа запускается с параметрами  (Прочитано 3415 раз)
tw333k
Гость
« : Июль 18, 2011, 13:54 »

Программа запускается с параметрами, но параметры приходят в неизвестном заранее порядке. Как наиболее удобнее их вытащить оттуда?

Допустим мне нужно два параметре


QString lenght, lenght2;

А программу могут запустить из коммандной строки как  programmname.exe len1=4324 len2=4342 так и наоборот.
Записан
Fess
Гость
« Ответ #1 : Июль 18, 2011, 13:56 »

Посмотрите вот это:
http://qt-apps.org/content/show.php/QCommandLine?content=135068
Записан
SASA
Гость
« Ответ #2 : Июль 18, 2011, 15:46 »

Код:
CApp a(argc, argv);
QStringList argList = a.arguments();
for (int cou = 1; cou < argList.size(); cou++) // разбор коммандной строки
{
// разбор параметров
if (argList[cou].startsWith("param1="))
{
param1 = argList[cou].right(argList[cou].length() - QString("param1=").length());
} else
if (argList[cou].startsWith("param2="))
{
param2 = argList[cou].right(argList[cou].length() - QString("param2=").length());;
}
}
Записан
Firefox
Гость
« Ответ #3 : Июль 25, 2011, 22:00 »

ну я делала с помощью argv[] параметра. при запуске programm.exe par1 par2 читаю argv массив первый параметр в первый элемент. второй во второй и т.д.
Записан
SASA
Гость
« Ответ #4 : Июль 26, 2011, 12:15 »

ну я делала с помощью argv[]
C QStringList работать удобнее,чем с сишными массивами.
Записан
Rem Norton
Гость
« Ответ #5 : Сентябрь 14, 2011, 23:46 »

Если параматры заданны в виде "<param>=<value>", то можно сделать так:
Код
C++ (Qt)
QMap<QString,QVariant> args;
...
...
   if (argc > 1)
   {
       for (int i = 1; i < argc; i++)
       {
           QStringList pr = QString(argv[i]).toUpper().split('=');
           if (pr.count() ==2)
           {
               args[pr[0]] = pr[1];
           }
       }
   }
 

Ну и потом вытаскивать параметры вот так:

Код
C++ (Qt)
int len1 = args["LEN1"].toInt();
int len2 = args["LEN2"].toInt();
 

Ну вот как-то так...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 20.