Консольное приложение read,write

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

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

Консольное приложение read,write

Сообщение Ildus » 17.01.2020 18:49:52

Привет, софорумцам.
Проблема в том, что при создании консольного приложение или программы, вообщем консольной, такие команды как read(), write() не работают
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ildus
новенький
 
Сообщения: 40
Зарегистрирован: 12.10.2018 19:35:38

Re: Консольное приложение read,write

Сообщение Vadim » 17.01.2020 19:13:13

Ildus писал(а):консольного приложение или программы, вообщем консольной, такие команды как read(), write() не работают

А вот это неправда! Я, по большей части, пишу как раз консольные приложения. И Read() и Write() работают просто замечательно!
У Вас ведь на рисунках не консольное приложение... ;-)
Vadim
долгожитель
 
Сообщения: 3871
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Консольное приложение read,write

Сообщение Ildus » 17.01.2020 19:35:12

Ой! То есть я имел ввиду простую программу и программу
Ildus
новенький
 
Сообщения: 40
Зарегистрирован: 12.10.2018 19:35:38

Re: Консольное приложение read,write

Сообщение Alex2013 » 17.01.2020 19:46:42

Бред какой-то ... Все работает.
ИзображениеИзображение
Просто запускай из консоли..
(Все что выше Begin можно выкинуть )
Зы
:idea: Чуть не забыл ! :idea:
Для Windows вначале программы нужно добавить {$APPTYPE CONSOLE}.
---------------------------
{$APPTYPE XXX} Выбор типа приложения. XXX=
Console – консольное.
GUI – графическое.
("По умолчанию" обычно GUI отсюда и глюк )
Последний раз редактировалось Alex2013 17.01.2020 21:00:25, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 1651
Зарегистрирован: 03.04.2013 11:59:44

Re: Консольное приложение read,write

Сообщение Vadim » 17.01.2020 20:21:46

Ildus писал(а):простую программу и программу

Очень толково пояснили... :D
Для консольных программ специально создаются файлы стандартного ввода и стандартного вывода. Для сегодняшних программ - клавиатура и консоль. Эти файлы берутся из окружения среды запуска. Для графических приложений - это уже не файлы, а совершенно индивидуальные девайсы, другой принцип работы. Поэтому в графприложениях таких файлов и нет, потому что их и правда нет - другой принцип работы.
Vadim
долгожитель
 
Сообщения: 3871
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Консольное приложение read,write

Сообщение Alex2013 » 17.01.2020 20:37:29

Кстати недавно вспомнил этот "хак"..
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
AllocConsole;
   try
    IsConsole := True;
    SysInitStdIO;
      Writeln(UTF8ToConsole('123 нажмите ентер'));
      Readln;
   finally
    FreeConsole;
   end;
end;


Открывает "временную " консоль в GUI приложении ("Хак" ясное из разряда "только для Windows" , в Линуксе Writeln всегда и так работает, только что-бы увидеть результат его применения, запускать прогу нужно из под консоли ) ... иногда очень полезно, для упрощения отладки в сложных для обычной отладки кусках кода . Есть только один недостаток второй раз открыть после выполнения FreeConsole; у меня не получилось, но для отладки можно просто не закрывать ... Запускать нужно вне IDE Лазаруса .
Alex2013
долгожитель
 
Сообщения: 1651
Зарегистрирован: 03.04.2013 11:59:44

Re: Консольное приложение read,write

Сообщение Ildus » 18.01.2020 21:45:40

Всем спасибо за ответы и помощь. Я переустановил Lazarus на диск C: (с Windows) и все заработало, проблема, видимо, была в доступе к консоли.
Ildus
новенький
 
Сообщения: 40
Зарегистрирован: 12.10.2018 19:35:38


Вернуться в Lazarus

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

Сейчас этот форум просматривают: MSN [Bot], Yandex [Bot] и гости: 3

Рейтинг@Mail.ru
cron