Работа с командной строкой

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Работа с командной строкой

Сообщение GENI » 01.10.2009 20:22:50

Подскажите плиз как работать с командной строкой в lazarus. Например мне надо запустить команду help в linux, получить ответ и вывести его в Memo.
То же и в Windows. В гугле ничего толкового, а wiki не отвечает почему-то.
GENI
новенький
 
Сообщения: 12
Зарегистрирован: 16.11.2008 20:54:30
Откуда: Arkhangelsk

Re: Работа с командной строкой

Сообщение carrots » 01.10.2009 20:31:12

Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Работа с командной строкой

Сообщение GENI » 01.10.2009 20:52:22

Эту ссылку на wiki я знаю, но по неким причинам у меня fx выдаёт, что время истекло.
GENI
новенький
 
Сообщения: 12
Зарегистрирован: 16.11.2008 20:54:30
Откуда: Arkhangelsk

Re: Работа с командной строкой

Сообщение Максим » 02.10.2009 00:11:50

GENI писал(а):Эту ссылку на wiki я знаю, но по неким причинам у меня fx выдаёт, что время истекло.

Вики лежит. Поднимут её только завтра.

По вашему вопросу: смотрите компонент TProcess. Тема неоднократно поднималась на форуме, и, кажется, на freepascal.ru есть по нему статья.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Работа с командной строкой

Сообщение carrots » 02.10.2009 16:47:33

GENI писал(а):Подскажите плиз как работать с командной строкой в lazarus. Например мне надо запустить команду help в linux, получить ответ и вывести его в Memo.
То же и в Windows. В гугле ничего толкового, а wiki не отвечает почему-то.


Вот пример с вики:
Код: Выделить всё
// Это демо-программа, показывающая, как запускать
// внешнюю программу и читать ее вывод
program launchprogram;

// Подключаем модули
uses
   Classes, SysUtils, Process;

// Опысываем переменную "AProcess"
// И добавляем список строк TStringList для сбора данных
// из вывода программы
var
   AProcess: TProcess;
   AStringList: TStringList;

// Начинаем нашу программу
begin
   // Создаем объект TProcess
   AProcess := TProcess.Create(nil);

   // Создаем объект TStringList
   AStringList := TStringList.Create;

   // Зададим командную строку
   AProcess.CommandLine := 'ppc386 -h';

   // Установим опции программы. Первая из них не позволит нашей программе
   // выполнятся до тех пор, пока не закончит выполнение запущенная программа
   // Также добавим опцию, которая говорит, что мы хотим прочитать
   // вывод запущенной программы
   AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];

   // Теперь запускаем программу
   AProcess.Execute;

   // Пока запущенная программа не закончится, досюда мы не дойдем

   // А теперь прочитаем вывод в список строк TStringList.
   AStringList.LoadFromStream(AProcess.Output);

   // Сохраним вывод в файл
   AStringList.SaveToFile('output.txt');

   // После сохранения файла мы можем уничтожить
   // TStringList и TProcess.
   AStringList.Free;
   AProcess.Free;   
end.
Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Работа с командной строкой

Сообщение Mr.Smart » 02.10.2009 17:00:50

GENI
Данный вопрос был разжеван на форуме. Но к сожалению поиском пользоваться не кто не хочет!
http://freepascal.ru/forum/viewtopic.php?f=5&t=3876
http://freepascal.ru/forum/viewtopic.php?f=1&t=3563
http://freepascal.ru/forum/viewtopic.php?f=1&t=2311
и т.д.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Работа с командной строкой

Сообщение EmeraldMan » 21.10.2009 21:53:15

У меня тоже вопросик.
Надо сделать старт апачу, а для этого нужно обращаться через sudo, который запрашивает пароль.
Так вот как при запуске программы передать пароль от суперпользователя?
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Работа с командной строкой

Сообщение Attid » 22.10.2009 19:49:10

visudo и сказать чтобы при запуске апача не просил пароль у данного пользователя.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

Рейтинг@Mail.ru