Прочтите программу STDIN в Delphi

У меня есть следующий пакетный сценарий:

dir | myapp.exe

И программа имеет этот источник (более или менее):

procedure TForm1.FormCreate(Sender: TObject);
var buff: String;
begin
  Read(buff);
  Memo1.Lines.Text:=buff;
end;

И вывод в заметке:

Том на диске C не имеет метки.

Я попытался:

  • поместить часть чтения в цикл с eof в качестве условия - каким-то образом заставив бесконечный цикл
  • записать цикл для продолжения чтения до strlen (buff) равен 0 - он по какой-то причине выходит второй раз
  • , чтение материала каждые 0,5 секунды (я думал об асинхронной записи в stdin), это тоже не удалось

Между прочим, запуск программа напрямую, без данных stdin, вызывает исключение EInputOutput (ошибка ввода-вывода) с кодом 6.

8
задан Christian 14 August 2011 в 01:59
поделиться