как перенаправить вывод моей консольной программы в ф

Общие вопросы программирования, алгоритмы и т.п.

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

как перенаправить вывод моей консольной программы в ф

Сообщение Aisa » 26.03.2009 02:49:58

Программа пользуется обычным writeln'ом. Не получается перенаправить вывод в файл - при запуске типа prg.exe > file.ext создается пустой файл (на экран в это время тоже ничего не выводится). Само собой, она все же что-то выводит, если ее просто запустить.
Aisa
незнакомец
 
Сообщения: 9
Зарегистрирован: 12.12.2007 16:59:56

Re: как перенаправить вывод моей консольной программы в

Сообщение Mr.Smart » 26.03.2009 11:30:09

А причём здесь FreePascal
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: как перенаправить вывод моей консольной программы в

Сообщение record » 26.03.2009 12:40:26

$ echo "program calc; begin writeln('Message: ',sin(PI/2)) end." > calc.pas && fpc calc.pas 1>/dev/null && ./calc > result.txt && cat result.txt && rm calc* && rm result.txt

Message: 1.0000000000000000E+0000

У меня переправляет. :D
record
новенький
 
Сообщения: 29
Зарегистрирован: 11.02.2006 16:34:51

Re: как перенаправить вывод моей консольной программы в

Сообщение Vadim » 26.03.2009 14:48:23

Aisa
Текст программы - в студию!
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: как перенаправить вывод моей консольной программы в

Сообщение Aisa » 27.03.2009 00:35:33

Mr.Smart писал(а):А причём здесь FreePascal

Притом, что я на нем пишу. Это вопрос не по паскалю, как языку, а по компилятору freepascal.


Vadim писал(а):Aisa
Текст программы - в студию!

вот сэмпл (во всем виноват crt, как я понял, но мне он нужен)

Код: Выделить всё
uses crt;
begin
  writeln('test');
end.


add:
Из crt я использую gotoxy, wherey, clreol и readkey. Если эту функциональность можно получить другим образом - тоже вариант. Сейчас я уже не нуждаюсь в перенаправлении - обошелся, но пришлось именно обходиться. Хотелось бы иметь простое решение в следующий раз.
Aisa
незнакомец
 
Сообщения: 9
Зарегистрирован: 12.12.2007 16:59:56

Re: как перенаправить вывод моей консольной программы в

Сообщение Vadim » 27.03.2009 07:28:29

Aisa
Действительно, есть такая фишка. Виновато тут не совсем Crt.
Дело в том, что в WinAPI есть две группы функций по работе с консолью:
1. Примитивная, которая только выводит на консоль что-нибудь и считывает оттуда данные. Write\Read\Ln, если не подключать Crt, базируется на этих примитивных функциях.
2. Продвинутая, более изощрённая, но работает она уже не с консолью непосредственно, а с буфером консоли или, другими словами, с некоей виртуальной консолью. Естественно Crt основано на этой самой второй группе функций, по другому просто не получится.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Общее

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

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

Рейтинг@Mail.ru