добрый день
1. планы, описание задачи:
хочу разобраться и наработать методику/код «формошлЁп-скрИптинга» для простого пользователя :о)
- GUI-формы будут на QT4/Lazarus (в данном случае рассматриваем QT4)
в GUI-форме:
- вызовы скриптов, внешних команд и пр...
- получение выхлопа скрипта & ERRORLEVEL для дальнешего анализа
т.к. GUI будут на QT4, то запуск скрипта / чтение выхлопа / ERR_LEVEL, ск.всего, будет на базе QT4
2. настройки и рабочие скрипты
- ini-файл с настройками
- каталог со скриптами (либо стандартный PATH)
3. чтение ini-файла, запуск скриптов
- GUI-программа загружает в буфер содержимое ini-файла
- реакция на кнопку -> вызов обработчика, типа:
run_id(int ID);
- запуск скрипта, анализ выхлопа/кода возврата и ... дальнейшая реализация в зов-ти от фантазии :о)
КОД_1 - запуск внешнего скрипта
архив code_1.tar.xz
Примерный выхлоп основной программы:
### qDebug()
exitCode () = ' 2 '
exitStatus() = ' 0 '
str_out = ' "test script 2, arg=--add_scr2_arg --add_qt_app_arg
" '
str_err = ' "" '
### printf()
exitCode () = '2'
exitStatus() = '0'
str_out () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
'
str_err () = ''
ВОПРОСЫ
1. qDebug - имеет «обрамление» с обоих сторон строк в виде:
' "' + '" '
ВОПРОС 1: это особенности отладочного вывода qDebug ?
в обоих случаях qDebug & printf при «выхлопе текста» запускаемого скрипта - «странная» печать строки, с переносом в конце, хотя сам выхлоп скрипта без переноса
str_out () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
' !!! <-- вот тут перенос конца строки
ВОПРОС 2 :почему?
прочие ВОПРОСЫ:
- может, для внутреннего использования, лучше/проще по старинке использоавть string, или вообще простой буфер char* str?
мне самому не оч. нравиться использовать qt-классы, для таких простых операций, но !!! логично писать в той «эко-системе» в которой пишешь GUI, мало-ли чего там еще в будущем шарахнет использовать, передать «какой особенный» параметр в QT4/GUI... имхо
уточнение:
- именно QT4
- согласен, для простых GUI на cli/YAD/Zenity, логично «это» делать на bash/perl итд, кому, что удобнее
- в инете есть много «простых» примеров с «кодом» на с/с++, но я не встречал что-бы было реализовано одновременно при запуске скрипта получение выхлопа и кодa-возврата.
- так-же не встречал подходящих/удобных/минимальных примеров/библиотек парсинга ini-файла, что-бы была организована работа с буфером а не с потоками (т.к. каждый раз для чтения ini-файла создаются/закрываются потоки... это не оптимально, надо будет подходящую библиотеку доробатывать, на примете inih, посмотрим, что можно сделать с ней :о)
буду благодарен за подсказки, ссылки, код итд ...
вопросы по написанию GUI и парсинг ini-файла будут позже
TAG: c,c++,gui,qt4,scripting
### UPDATE ###
протестировал (немного подрихтовал под себя) библиотеку
IniParser
простенькая, удобная, вполне годная!
итак, имеется два варианта работы с ini-файлом
- IniParser
- QSettings