Помощь новичкам

Что делать (только ждать, пока добавят поддержку TryRead для типа Boolean?), если выходит ошибка “Нет перегруженной подпрограммы с такими типами параметров”, когда я пытаюсь выполнить

var
  Выбор: boolean;
begin
  while not TryRead(Выбор) do Writeln('Ошибка. Неподходящее значение.');
end.

Какие, по вашем, строки должны вводиться? И при чём тут ожидание, вы не можете сами такую подпрограмму реализовать?

Не понял Вас.

Готово.

Как написать длинное название программы в строке с program, например,

program Программа с длинным названием v1.0;

Какие строчки надо подать на ввод чтоб её прочитало как boolean, и каким значениям они будут соответствовать?

А, стоп, ну да…

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 не принимает пробелы и точки в названии программы.

IOStandardSystem это тип из PABCSystem отвечающий за парсинг значений различных типов при вводе.

Зачем вам вообще строчка с program? Она практически ничего не делает. С тем же успехом можно добавить комментарий.

А что же она делает? (Она только делает так, чтобы заголовок окна программы не зависел от имени файла, с помощью которого она запускается?) И всё-таки,

Изменяет внутреннее представление. В .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 и группе поддержки.

Некоторые полезные инструменты, которые могут пригодится и в повседневной жизни:

– NETMouse projects ©

Давайте-ка я Вас отсюда уберу. Вот за эту фразу на вашем ресурсе:

“PascalABC. NET (нестабильная IDE со слабым компилятором)”

Мы думали, Вы исправились после той истории с Хабром, но видимо нет.

Здесь на страницах форума мы не будем рекламировать ничей продукт, который содержит подобные строки.

Кроме того, мы просим вас не регистрироваться на форуме под разными аккаунтами и использовать свой основной аккаунт MrFresnel, под которым здесь вас хорошо знают

2 лайка

Что такое вложенность пространств имён в настройках Intellisense?

Думаю, это - давняя опция, которая позволяет распознавать в Intellisense чуть больше за счёт увеличения времени. Для реальной разработки она не нужна.

Если поставить 1, нажать Ctrl+Space и написать sys - показывает только System:

image

Если поставить 2 - показывает System+все пространства имён в нём:

image

И т.д.

Её надо убрать - сейчас все компьютеры быстрые - не то что 10 лет назад

Зачем нужны окна “Сообщения компилятора”, “Результат поиска символов”, “Просмотр выражений”, “Окно дизассемблирования” и панель навигации по коду.

Где найти допустимые параметры командной строки и зачем они нужны?

При каком минимальном положительном значении переменной типа BigInteger real(от этой переменной) = Infinity?

Убрано

Ну, ВЫ и не рекламировали. Но, в связи с тем, что такой строки больше нет, можете вернуть?

2 лайка

Просто лог действий компилятора

Можно найти все ссылки на какую-либо функцию или класс, например

По остальным не знаю…

В смысле?

Параметры - для запуска программы из .exe с параметрами. Программа - это та же функция, а зачем функции параметры, думаю, объяснять не надо. А про допустимые параметры - см. пункт первый