Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кусок из дркб, что нужно сделать, чтобы это заработало? 
V
    Опции темы
kuzyara
Дата 29.1.2008, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



Код

procedure ExecCmdine(const CmdLine: string; CmdResult: TStrings); 
var 
  Output: PIOFile; 
  Buffer: PChar; 
  TempString: string; 
  Line: string; 
  BytesRead: Integer; 

const 
  BufferSize: Integer = 1000; 

begin 
  Output := popen(PChar(CmdLine), 'r'); 
  GetMem(Buffer, BufferSize); 
  if Assigned(Output) then 
  try 
    while feof(Output) = 0 do 
    begin 
      BytesRead := Libc.fread(Buffer, 1, BufferSize, Output); 
      SetLength(TempString, Length(TempString)+BytesRead); 
      memcpy(@TempString[length(TempString)-(BytesRead-1)], Buffer, BytesRead); 
      while Pos(#10, TempString) > 0 do 
      begin 
        Line := Copy(TempString, 1, Pos(#10, TempString)-1); 
        if CmdResult<>nil then CmdResult.Add(Line); 
        TempString := copy(TempString, Pos(#10, TempString)+1, Length(TempString)); 
      end; 
    end; 
  finally 
    Libc.pclose(output); 
    wait(nil); 
    FreeMem(Buffer,BufferSize); 
  end; 
end;


Что за piofile, popen, pclose? Что нужно сделать, чтобы это заработало?
--------------------
подпись
PM MAIL   Вверх
gambit
Дата 29.1.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Я чет такой код в вкли не нашел. Где он???
PM MAIL ICQ Skype   Вверх
Olegan
Дата 29.1.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крутой сисадмин
**


Профиль
Группа: Завсегдатай
Сообщений: 752
Регистрация: 15.5.2007

Репутация: нет
Всего: 105



Может ошибаюсь, но кто-то писал к этому коду свой модуль, а потом подключал его в uses.
Может ты что-то упустил и там еще что-то есть?
А как там это все называется?


--------------------
Цитата(Mayk @  18.6.2008,  14:29 Найти цитируемый пост)
/me объявляет Olegan врагом народа

Цитата(gta4kv @  20.6.2008,  22:01 Найти цитируемый пост)
/me объявляет Olegan врагом народа во второй раз

Цитата(localhost @  15.6.2009,  08:45 Найти цитируемый пост)
/me объявляет Olegan врагом народа в третий раз
PM MAIL   Вверх
volvo877
Дата 29.1.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Olegan @  29.1.2008,  08:30 Найти цитируемый пост)
А как там это все называется? 
Kylix -> Как запустить консольное приложение и перехватить вывод? там это называется... 

PM MAIL   Вверх
Frees
Дата 29.1.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: нет
Всего: 54



в дркб есть другая статья на ту же тему там код работоспособен
Статья: " Как вывести результат работы консоли в Memo?"



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
kuzyara
Дата 29.1.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



упс, извините, не заметил, что это для kylix.

спасибо Frees
--------------------
подпись
PM MAIL   Вверх
w2w
Дата 17.11.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2008

Репутация: нет
Всего: 1



Цитата(kuzyara @ 29.1.2008,  07:47)
Что за piofile, popen, pclose? Что нужно сделать, чтобы это заработало?

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

piofile, popen, pclose - это функции работы с каналами как с файловыми потоками. Идея следующая - используется функция попен, для запуска приложения и подключения к его стандартному выходу. Далее производится чтение из созданного канала в буфер и из буфера в строку. Визуально- код должен быть рабочим. Какие ошибки пишет? Подключили ли в uses модуль Libc?

Это сообщение отредактировал(а) w2w - 17.11.2008, 08:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.