Get exit code - Получить код завершения работы стороннего приложения
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Get exit code - Получить код завершения работы стороннего приложения
Привет всем!
Необходимо получить в приложение созданное в Clarion код (строку) результата завершения работы стороннего приложения.
К примеру, всё что выдаёт на консольный экран команда DIR - всё это должно быть доступно приложению созданному в Clarion.
Пожалуйста, помогите с рабочим примером в коде Clarion
Необходимо получить в приложение созданное в Clarion код (строку) результата завершения работы стороннего приложения.
К примеру, всё что выдаёт на консольный экран команда DIR - всё это должно быть доступно приложению созданному в Clarion.
Пожалуйста, помогите с рабочим примером в коде Clarion
С Уважением, Developer
- Дед Пахом
- Старичок
- Сообщения: 3288
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Get exit code - Получить код завершения работы стороннего приложения
Подозреваю, что команда DIR в своё завершение просто делает return 0, а всё что она выдаёт на экран это совсем не результат завершения.
С уважением, ДП
Get exit code - Получить код завершения работы стороннего приложения
Дед Пахом спасибо за отклик!
Но необходимо получить не только Return Exit Code а в основном результат работы программы DIR - список каталогов - всё что доступно пользователю в консольном экране.
P. S. DIR - абстрактный пример.
Но необходимо получить не только 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.
С уважением, ДП
Get exit code - Получить код завершения работы стороннего приложения
Именно!
Подскажи, пожалуйста ссылку
С Уважением, Developer
Get exit code - Получить код завершения работы стороннего приложения
Михаил - спасибо!
Уже что-то.
Теперь надо на твоём примере получить требуемый результат
Уже что-то.
Теперь надо на твоём примере получить требуемый результат

С Уважением, Developer
- Дед Пахом
- Старичок
- Сообщения: 3288
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Get exit code - Получить код завершения работы стороннего приложения
Ну напрямую прочитать stdout довольно проблематично. Проще так: допустим, юзер ввёл команду DIR, она у нас в переменной cmd. Выполняем DIR с перенаправлением в файл:
Теперь список папок и файлов в файле cmd_stdout.txt. Чтобы юзер не нервничал, что на экране не появился ожидаемый текст, выводим его самостоятельно: console.Write(filecontent)
Код: Выделить всё
console.Write('Enter DOS command: ', FALSE)
cmd = console.ReadLine()
cmd = cmd & ' > cmd_stdout.txt'
RUN('cmd /c '& cmd, 1)
С уважением, ДП
Get exit code - Получить код завершения работы стороннего приложения
Пример успешно собран и запускает сторонние приложения, вот только непонятно куда выводит результат приложения (текст) 

С Уважением, Developer
Get exit code - Получить код завершения работы стороннего приложения
О, уже прогресс - получилось!
Файл cmd_stdout.txt с требуемой информацией результата работы команды утилиты ipconfig /all
создан успешно!
Возможно ли работа без создания файла DOS (работа только в памяти)
А как теперь распарсить полученный результат и вытянуть необходимое значение в переменные Clarion?

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

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

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

Есть ли примерчик как распарсить текстовый файл?
С Уважением, Developer
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Get exit code - Получить код завершения работы стороннего приложения
Интересно, а ты сам как Developer (т.е. разработчик) вообще что-то пишешь? )
Если даже распарсить текстовый файл пример нужен
Если даже распарсить текстовый файл пример нужен
- Дед Пахом
- Старичок
- Сообщения: 3288
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Get exit code - Получить код завершения работы стороннего приложения
Если нужно только распарсить вывод ipconfig, то тебе сюда - получение информации об адаптерах.
С уважением, ДП