Название: StdOut Отправлено: diva от Август 08, 2005, 13:39 Я с помощью QProcess выполняю консольные программы Мне нужно прочитать что она возвращает Пробывал [virtual QString readLineStdout ()] у меня ничего не получается Подскажите
Название: StdOut Отправлено: Hellenna от Август 08, 2005, 14:54 Код: QStringList out; всегда работает Название: StdOut Отправлено: diva от Август 09, 2005, 09:38 Что-то мне возвращаются пустые строки и срабатывает readStderr()
В общем я посылаю команду поиска файлов и хочу чтобы их видедь в листбоксе. Может я что-то не понимаю или не так делаю Название: StdOut Отправлено: Hellenna от Август 09, 2005, 09:44 комманда поиска файлов это find?
ты ей ключик --print указал? Пробовал просто ту комманду которую скармливаешь QProcess в консоли запустить, там все в порядке, пишется точно на stdout? Еще как вариант, у меня такое пару раз было: комманду со всеми ключами и аргументами надо записать в файл и запустить этот файл на выполнение. Можешь точно написть чего скармливаешь QProcess, может дело в аргументах... Название: StdOut Отправлено: diva от Август 11, 2005, 10:13 команда find в консоли работает нормально и выводит на экран все что нашла.
Вот код что я делал Код:
Может ошибка именно здесь но почемуто вызывается readStderr() Название: StdOut Отправлено: Dair от Август 11, 2005, 12:30 Код: proc->addArgument(".*txt"); Это опечатка здесь или в коде программы? ;-) Мне так кажется, что должно быть "*.txt" это раз. 2. попробуй connect() делать до start() - в mutithread может быть актуально. (да и вообще - я для себя завел хорошую традицию все connect'ы делать сразу после создания объекта :-)) 3. ReadyReadStderr() в любом случае будет послан по, например, выходу из программы. Тогда readLineStderr вернет пустую строку (проверяй не isNull, а isEmpty - тогда должно сработать) ... а если в readStdout сразу после "while... {" поставить qDebug( tmp )?.. 4. Это *nix? Попробуй не просто find, а /usr/bin/find (или смотри, где расположен у тебя find - which find) Название: StdOut Отправлено: diva от Август 12, 2005, 09:36 Получилось.
Если кому интересно то смотрите Код:
И оно ищет все что мне надо. Трабла была в том, что я задавал команду поиска так: find *.txt в QT и оно говорило что ненайден файл или директория (хотя в консоли работает отлично и не вызывает никакой ошибки. Почему не знаю). Название: StdOut Отправлено: Dair от Август 12, 2005, 09:40 Потому что в консоли *.txt раскрывает шелл, а в Qt шелл встроить до сих пор не догадались :-)
|