Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2012, 22:59   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию Lazarus. TProcess. Cannot seek on pipe

Всем доброго. Чтоб запустить в программе консольную программу (если кому нужны подробности то это питон и РНР) использую следующий код:
Код:
    with TProcess.Create(nil) do begin
     CommandLine:='Командная строка'
     Options:=[poNoConsole,poUsePipes];
     log('Пытаюсь выполнить скрипт '+CommandLine);
     try
      Active:=true;
      WaitOnExit;
       with TFileStream.Create(ParaFile+'.ans',fmCreate) do begin
        try
          while true do begin
           WriteByte(Output.ReadByte); Sleep(10);
          end;
        except

        end;
        Free;
       end;
     except
      on e:Exception do
       log('Скрипт '+CommandLine+' Сгенерировал ошибку: '+e.Message);
     end;
     log('Скрипт '+CommandLine+' завершил работу с результатом '+IntToStr(ExitStatus)+' '+SysErrorMessageUTF8(ExitStatus));
     Free;
    end;
Это работает.

Знаю что индустивностью попахивает. но попытки прописать
CopyFrom(Output,Output.Size) приводят к ошибке
Цитата:
Cannot seek on PIPE
Операционка Windows.

Вопрос: Как из пайпов то правильно считывать. Пусть даже не в этом компоненте, но узнать размер пайпа то хочется. Может из пайпа вообще нельзя в винде размер вычислять?
А то ведь действительно грязновато получается, и отлаживать не удобно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2012, 23:18   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Не силен в английском, но может пригодится.. : тыц
Poma][a вне форума Ответить с цитированием
Старый 27.12.2012, 23:28   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

О! Точняк. Как-то с пайпами про TStringStream с его LoadFromStream и забыл.
Данке.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перекомпиляция программы(простой) Win Lazarus в Linux Lazarus Toxifer Фриланс 0 27.11.2012 22:46
seek & textfile dukales Помощь студентам 3 06.09.2011 18:17
использование named Pipe Sparky Общие вопросы .NET 1 29.03.2010 17:54
Определить размер Pipe IceBreaker Помощь студентам 4 04.02.2010 18:28
Создание Pipe на C# (CreateFile) WinApi Помощь студентам 0 23.12.2009 08:07