Get exit code - Получить код завершения работы стороннего приложения

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Привет всем!

Необходимо получить в приложение созданное в Clarion код (строку) результата завершения работы стороннего приложения.

К примеру, всё что выдаёт на консольный экран команда DIR - всё это должно быть доступно приложению созданному в Clarion.

Пожалуйста, помогите с рабочим примером в коде Clarion
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

Подозреваю, что команда DIR в своё завершение просто делает return 0, а всё что она выдаёт на экран это совсем не результат завершения.
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Дед Пахом спасибо за отклик!

Но необходимо получить не только Return Exit Code а в основном результат работы программы DIR - список каталогов - всё что доступно пользователю в консольном экране.

P. S. DIR - абстрактный пример.
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

слишком абстрактный пример, ничего не понятно. Если нужно получить результат консольной утилиты, то проще всего перенаправить вывод с консоли в файл.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

А ещё проще запускать консоль прямо из приложения Clarion, тогда весь ввод/вывод доступен прямо в программе. Я выкладывал класс консоли в своём GitHub.
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Дед Пахом писал(а): слишком абстрактный пример, ничего не понятно. Если нужно получить результат консольной утилиты, то проще всего перенаправить вывод с консоли в файл.
Именно!
Подскажи, пожалуйста ссылку
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Михаил - спасибо!

Уже что-то.

Теперь надо на твоём примере получить требуемый результат :wink:
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

Ну напрямую прочитать stdout довольно проблематично. Проще так: допустим, юзер ввёл команду DIR, она у нас в переменной cmd. Выполняем DIR с перенаправлением в файл:

Код: Выделить всё

      
      console.Write('Enter DOS command: ', FALSE)
      cmd = console.ReadLine()
      cmd = cmd & ' > cmd_stdout.txt'
      RUN('cmd /c '& cmd, 1)
Теперь список папок и файлов в файле cmd_stdout.txt. Чтобы юзер не нервничал, что на экране не появился ожидаемый текст, выводим его самостоятельно: console.Write(filecontent)
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Пример успешно собран и запускает сторонние приложения, вот только непонятно куда выводит результат приложения (текст) :(
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

О, уже прогресс - получилось! :D

Файл cmd_stdout.txt с требуемой информацией результата работы команды утилиты ipconfig /all
создан успешно!

Возможно ли работа без создания файла DOS (работа только в памяти) :?:

А как теперь распарсить полученный результат и вытянуть необходимое значение в переменные Clarion?
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

Developer писал(а): А как теперь распарсить полученный результат и вытянуть необходимое значение в переменные Clarion?
А об этом надо было подумать в первую очередь :-)
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Developer »

Дед Пахом писал(а): А об этом надо было подумать в первую очередь
Хорошая мысля приходит опосля :D

Есть ли примерчик как распарсить текстовый файл?
С Уважением, Developer
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение RaFaeL »

Интересно, а ты сам как Developer (т.е. разработчик) вообще что-то пишешь? )
Если даже распарсить текстовый файл пример нужен
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Get exit code - Получить код завершения работы стороннего приложения

Сообщение Дед Пахом »

Developer писал(а): Файл cmd_stdout.txt с требуемой информацией результата работы команды утилиты ipconfig /allсоздан успешно!
Если нужно только распарсить вывод ipconfig, то тебе сюда - получение информации об адаптерах.
С уважением, ДП
Ответить