добрый день

1. планы, описание задачи:



хочу разобраться и наработать методику/код «формошлЁп-скрИптинга» для простого пользователя :о)

- GUI-формы будут на QT4/Lazarus (в данном случае рассматриваем QT4)


в GUI-форме:

- вызовы скриптов, внешних команд и пр...

- получение выхлопа скрипта & ERRORLEVEL для дальнешего анализа



т.к. GUI будут на QT4, то запуск скрипта / чтение выхлопа / ERR_LEVEL, ск.всего, будет на базе QT4



2. настройки и рабочие скрипты



- ini-файл с настройками

- каталог со скриптами (либо стандартный PATH)



3. чтение ini-файла, запуск скриптов



- GUI-программа загружает в буфер содержимое ini-файла

- реакция на кнопку -> вызов обработчика, типа:

run_id(int ID);

- обработчик парсит буфер ini-файла, по ID получает имя_скрипта

- запуск скрипта, анализ выхлопа/кода возврата и ... дальнейшая реализация в зов-ти от фантазии :о)

КОД_1 - запуск внешнего скрипта

архив code_1.tar.xz

Примерный выхлоп основной программы:

### qDebug() 
exitCode () = ' 2 '
exitStatus() = ' 0 '
str_out = ' "test sсript 2, arg=--add_scr2_arg --add_qt_app_arg
" '
str_err = ' "" '

### printf()
exitCode () = '2'
exitStatus() = '0'
str_out () = 'test sсript 2, arg=--add_scr2_arg --add_qt_app_arg
'
str_err () = ''

ВОПРОСЫ



1. qDebug - имеет «обрамление» с обоих сторон строк в виде:

' "' + '" '

(т.е. пробел + символ ковычки)

ВОПРОС 1: это особенности отладочного вывода qDebug ?



в обоих случаях qDebug & printf при «выхлопе текста» запускаемого скрипта - «странная» печать строки, с переносом в конце, хотя сам выхлоп скрипта без переноса

str_out   () = 'test sсript 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



архив code_1.tar.xz








 , , ,






URL записи