• 0
Авторизация  
shershen

[OSX] Как прочитать вывод другого консольного приложения из своего?

Вопросы

Как на FM запустить консольную программу (на Макосе) и считать ее экран (проценты в моем случае)? Про пайпы в курсе, но что-то не знаю даже, с чего начать на FM :( 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 ответов на этот вопрос

  • 0

Этот вопрос ни коем образом не касается FM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я думаю, "коем" образом вполне себе касается. Я использую Firemonkey и хочу с его помощью решить конкретную задачу под Mac Os X. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Думаю как-то так:

 

В Delphi XE6:

File -> New -> Other... -> Console Application

 

в коде к примеру:

program Project3;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  
  writeln('Hello World!'); // вывод на экран Hello World
  readln; // ввод, чтобы окно не закрылось пока enter не нажмут

end.

далее справа в Project Manager'е правой кнопкой мыши по Target Platforms -> Add Platform... -> OS X

 

при компиляции выбираем OS X, и наверное имеем связь с Mac'ом как и при компиляции для iOS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Думаю вопрос был не об этом. Нужно читать вывод с "чужих" консольных приложений, например ping.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да, возьмем для примера какой-нибудь конвертер форматов, мы его запускаем (типа CreateProcess с Pipes на винде) и пока идет преобразование, мы показываем красивый progress bar на форме, считывая % из консольного окна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Спасибо, процесс запускается, файл конвертится (я юзаю Lame), но никакого текста консоли не получаю - 

BytesRead := fread(Buffer, 1, BufferSize, Output);

всегда возвращает 0...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

решение вполне рабочее, проверено.

На Lame проверьте, пожалуйста. attachicon.giflame.zip

 

Проверить смогу только в понедельник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вот результат работы вашей программы

Last login: Fri Oct 17 17:25:25 on ttys001
xxx:~ User$ /Users/User/Desktop/lame ; exit;
LAME 64bits version 3.99.5 (http://lame.sf.net)

usage: /Users/User/Desktop/lame [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

Try:
     "/Users/User/Desktop/lame --help"           for general usage information
 or:
     "/Users/User/Desktop/lame --preset help"    for information on suggested predefined settings
 or:
     "/Users/User/Desktop/lame --longhelp"
  or "/Users/User/Desktop/lame -?"              for a complete options list

logout

[Процесс завершен]

Это то, что вы ожидали увидеть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Извиняюсь за долгий неответ) Грубо говоря, да. А если lame попросить сконверить wav в mp3, то он будет показывать процент выполнения конвертации, который мне и нужно получить парсингом и показать в прогресс баре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу