Последняя запись работающая в Write - вообще устарела.
В наше время лучше так:
begin
var x := 1.2345;
Writeln(x.ToString('N2').PadLeft(5), '|');
Writeln(x.ToString('N2').PadRight(5), '|');
end.
Или, когда нужна краткость кода - внутри форматной строки:
begin
var x := 1.2345;
Writeln($'{x,5:N2}|');
Writeln($'{x,-5:N2}|');
end.
По делу - Round возвращает число. В то время как :: во Write, .ToString и $'' - это всё операции над строками.
Кхм, в опере тоже. Ну, я б не назвал это багом. Если курсор не стоит на окне написания ответа, или использовать кнопку под ПКМ - работает нормально. Да и инструменты разработчика только для разработчиков сайта.
Не понял Ваш вопрос. Если что, я имел ввиду, что Read можно записать как в виде x:=Read, так и Read(x), а ReadInteger можно записать только как x:=ReadInteger, поэтому я и прошу добавить возможность записать ReadInteger(x).
Это получение адреса подпрограммы. И вообще не должно работать, потому что у Read много перегрузок, а переменной можно присвоить только адрес одной перегрузки. Ну и ещё потому что Read это волшебная подпрограмма, то есть компилятор может немного подменять код с ней.
Ну, ближе к теме - зачем вам ReadInteger(x)? Где такое может пригодиться?
Не уверен, что сюда с вопросом… но…
Сейчас копаюсь в коде PABC (свой плагин делаю) и пока не сообразил, как вытянуть индекс первой ячейки массива в режиме Debug?
Глянул в лист значений локальных переменных … и там с нуля!!!
Пока добрался до списка локальный переменных:
Debugger.ProcessEventArgs.Process.LocalVariables из события Process_DebuggeeStateChanged
где Process из WorkbenchServiceFactory.DebuggerManager.DebuggedProcess
Элементы списка экземпляры класса Debugger.Value
Примитивные типы вроде как через строку можно получить.
Value с массивом получают так:
var value = e.Process.LocalVariables.ToArray();
var array = value[3].GetMembers()[0]
Ну и сами значения через
var elms = array.GetArrayElements().ToArray();
А вот ссылку на экземпляр “статического массива” пока не получил… Не понял пока…
Нет экземпляра, нет данных о классе и members…
Есть еще мысль залезть в сам модуль и через рефлексию получить сам экземпляр класса, но надеялся через IDE данные получить.
Некий рекорд написания кода и процесса пошаговой отладки, чтобы затем можно было визуализировать в другой программе. С изменением текста и перемещением курсора быстро разобрался. А вот с отладкой немного запутался. Позицию текущей выполняемой строки получил. Имена и значения локальных переменных из этого списка легко получить. А вот с массивом завис. Собственно, мне только простые вещи нужны, для учебных видео, для школьников. В основном в объеме ЕГЭ. Поэтому перечисления, ООП и прочие сложности не нужны.
Пожалуйста, добавьте поддержку индексов типа BigInteger в динамических массивах. Из-за того, что её нет, мне в моём проекте придётся дублировать половину или треть кода программы.
Если вы её не добавите, прошу сказать, как перевести значение в BigInteger в значение в Integer, если значение в BigInteger точно лежит в допустимых пределах для Integer (MinInteger<=BigInteger<=MaxInteger).
Я легко могу представить себе такой массив, и даже больше. Но одновременно представить использование его в Паскале мне трудно. Если нужен такой массив, может надо подумать еще и об языке?