Что делать (только ждать, пока добавят поддержку TryRead для типа Boolean?), если выходит ошибка “Нет перегруженной подпрограммы с такими типами параметров”, когда я пытаюсь выполнить
var
Выбор: boolean;
begin
while not TryRead(Выбор) do Writeln('Ошибка. Неподходящее значение.');
end.
procedure IOStandardSystem.read(var x: boolean);
begin
var s := ReadLexem.ToLower;
if s = 'true' then
x := True
else if s = 'false' then
x := False
else raise new System.FormatException('Входная строка имела неверный формат');
end;
Но вообще тогда уж лучше…
begin
var b: boolean;
while not boolean.TryParse(ReadString, b) do
Writeln(new System.FormatException);
b.Println;
end.
Хотя это бред, обычно для нормального консольного интерфейса надо ожидать на ввод что то типа t/f, а не целое слово. Это не юзабельно.
Но что я пытался донести - что подавать на ввод можно долго думать, странно было бы отдавать предпочтение 1 из вариантов в стандартном модуле.
Всё равно не понимаю. С моей степенью понимания на данный момент я могу ответить следующим образом:
Если написать в поле ввода True или true, то переменная типа boolean примет значение True. Если написать в поле ввода False или false, то переменная типа boolean примет значение False.
Пока это писал, заметил новое сообщение, следовательно, возможно, что написанное выше уже не актуально. Кроме того, сообщение, начинающееся со слов
я тоже не понял, кроме части
В общем, я решил вопрос с отсутствием подпрограммы для случая
begin
var x:boolean;
TryRead(x);
end.
добавив в свою программу подпрограмму наподобие уже существующих и отправив предложение на её добавление в этом сообщении: Замечания и предложения.
Теперь мне нужно узнать
поскольку при таком написании Pascal не принимает пробелы и точки в названии программы.
А что же она делает? (Она только делает так, чтобы заголовок окна программы не зависел от имени файла, с помощью которого она запускается?) И всё-таки,
Изменяет внутреннее представление. В .Net-овских .exe бывают только классы. Ваши глобальные переменные - это статические поля классов (поэтому и медленнее локальных). Ваши глобальные подпрограммы - на самом деле статические методы классов.
Строчки program, unit и library изменяют название класса, в который будет сувать глобальные подпрограммы и поля текущего файла.
Видеть это можно только в стеках исключений:
//program abc;
begin
try
raise new Exception;
except
on e: Exception do
Writeln(e);
end;
end.
Посмотрите что выводит так и если разкомментировать первую строчку.
Вы имеете в виду консольное окно? Так оно показывает имя .exe файла. То есть оно поменяется если вы готовый бинарник переименуете. Но по моему проще поменять Console.Title.
Здравствуйте, @Just_name . Вы можете использовать ABCNET вместо PABCSystem. Что Вы получите при данном выборе:
Независимость от PascalABC.NET - работает на всех NET языках
Высокая структурированность
Большее количество функционала
Высокий уровень стандартизации
Более того - установка библиотеки достаточно удобна благодаря наличию соответствующего NuGet-пакета. Более подробно об этом можно узнать на главной странице проекта, на которую ссылка ниже.
Посмотреть возможности библиотеки Вы можете без скачивания примеров - в разделе Wiki проекта имеются ссылки на примеры для запуска online.
Если Вам понравится продукт - Вы можете стать частью нашей команды разработчиков, но для этого - просьба обратиться ко мне лично, чтобы я выдал Вам соответствующие права разработчика на GitHub и группе поддержки.
Некоторые полезные инструменты, которые могут пригодится и в повседневной жизни:
Давайте-ка я Вас отсюда уберу. Вот за эту фразу на вашем ресурсе:
“PascalABC. NET (нестабильная IDE со слабым компилятором)”
Мы думали, Вы исправились после той истории с Хабром, но видимо нет.
Здесь на страницах форума мы не будем рекламировать ничей продукт, который содержит подобные строки.
Кроме того, мы просим вас не регистрироваться на форуме под разными аккаунтами и использовать свой основной аккаунт MrFresnel, под которым здесь вас хорошо знают
Параметры - для запуска программы из .exe с параметрами. Программа - это та же функция, а зачем функции параметры, думаю, объяснять не надо.
А про допустимые параметры - см. пункт первый