Привет, софорумцам.
Проблема в том, что при создании консольного приложение или программы, вообщем консольной, такие команды как read(), write() не работают
Консольное приложение read,write
Модератор: Модераторы
Консольное приложение read,write
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ildus писал(а):консольного приложение или программы, вообщем консольной, такие команды как read(), write() не работают
А вот это неправда! Я, по большей части, пишу как раз консольные приложения. И Read() и Write() работают просто замечательно!
У Вас ведь на рисунках не консольное приложение...
Ой! То есть я имел ввиду простую программу и программу
Бред какой-то ... Все работает.


Просто запускай из консоли..
(Все что выше Begin можно выкинуть )
Зы
Чуть не забыл !
Для Windows вначале программы нужно добавить {$APPTYPE CONSOLE}.
---------------------------
{$APPTYPE XXX} Выбор типа приложения. XXX=
Console – консольное.
GUI – графическое.
("По умолчанию" обычно GUI отсюда и глюк )


Просто запускай из консоли..
(Все что выше Begin можно выкинуть )
Зы
Для Windows вначале программы нужно добавить {$APPTYPE CONSOLE}.
---------------------------
{$APPTYPE XXX} Выбор типа приложения. XXX=
Console – консольное.
GUI – графическое.
("По умолчанию" обычно GUI отсюда и глюк )
Последний раз редактировалось Alex2013 17.01.2020 20:00:25, всего редактировалось 1 раз.
Ildus писал(а):простую программу и программу
Очень толково пояснили...
Для консольных программ специально создаются файлы стандартного ввода и стандартного вывода. Для сегодняшних программ - клавиатура и консоль. Эти файлы берутся из окружения среды запуска. Для графических приложений - это уже не файлы, а совершенно индивидуальные девайсы, другой принцип работы. Поэтому в графприложениях таких файлов и нет, потому что их и правда нет - другой принцип работы.
Кстати недавно вспомнил этот "хак"..
Открывает "временную " консоль в GUI приложении ("Хак" ясное из разряда "только для Windows" , в Линуксе Writeln всегда и так работает, только что-бы увидеть результат его применения, запускать прогу нужно из под консоли ) ... иногда очень полезно, для упрощения отладки в сложных для обычной отладки кусках кода . Есть только один недостаток второй раз открыть после выполнения FreeConsole; у меня не получилось, но для отладки можно просто не закрывать ... Запускать нужно вне IDE Лазаруса .
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
AllocConsole;
try
IsConsole := True;
SysInitStdIO;
Writeln(UTF8ToConsole('123 нажмите ентер'));
Readln;
finally
FreeConsole;
end;
end;Открывает "временную " консоль в GUI приложении ("Хак" ясное из разряда "только для Windows" , в Линуксе Writeln всегда и так работает, только что-бы увидеть результат его применения, запускать прогу нужно из под консоли ) ... иногда очень полезно, для упрощения отладки в сложных для обычной отладки кусках кода . Есть только один недостаток второй раз открыть после выполнения FreeConsole; у меня не получилось, но для отладки можно просто не закрывать ... Запускать нужно вне IDE Лазаруса .
Всем спасибо за ответы и помощь. Я переустановил Lazarus на диск C: (с Windows) и все заработало, проблема, видимо, была в доступе к консоли.
