Простая замена вариантного типа в исходных кодах Borland Pascal

Да откуда Вы эти анекдоты берёте :rofl:

Это не анекдот, это цитата из известной в свое время пародии Бегемотова и Асса “Операция Игельс…” на 17 мгновений весны. Просто я на свете живу намного дольше Вас… )))

1 лайк

:smile:

Шутка юмора понятна, другое дело, что новички .NET в общем и PABC.NET в частности не знают ЧТО искать, эмпирический процесс исследования затягивается, поглумившись, форумчане время тоже не экономят, и относительно мелкая проблема даже для неглупого, но начинающего пользователя усугубляется вплоть до риторического “А оно тебе точно больше всех надо?”

1 лайк

Извините, а можно конкретизировать? Вы сами что-то хотите найти и не можете, или это просто мысли вслух, а Вам конкретно ничего не нужно найти?

2 лайка

Алекс, всё нормально, почти мысли вслух, хотя может есть смысл вынести вопросы-нюансы-решения бывших “паскалевцев-дельфистов” отдельно, чтобы переход был не так туго и резко?

Например, как в PABC.NET работают с нетипизированными файлами?–Ага, понятно. И строка безразмерная?–Так, надо бы в код описание типа string[255] добавить. А почему help молчит про вариантные записи?–О, ясненько, и куча рекомендаций. А куда делся mark-release и dispose, автоматом?–Крутяк! А в чём преимущество WPF?–Не хило, однако, а зачем там типа XML?–Всё, понял! А как бипнуть, типа системного “дзынь”?–Во как оно…

И так далее)

В борланде наверно пытались подражать бейсику, но вышло как обычно… Уж лучше бы заставили везде ставить точку с запятой.

Так если актуально - сделайте тему и там будут советы-решения копиться. Я пока не видел толп, которые бы жаждали бросить дельфийский интерфейс и библиотеки нативные для коннекта во всё, чтобы начать маяться с построением оных скромными средствами графических библиотек PascalABC.NET, вовсе на это не заточенных.

1 лайк

В смысле?

Это про этот случай:

type
  t1=class
    a:byte
  end;//ok
  
  t2=class
    function a:byte
  end;//Ошибка: ожидалось ';'

begin end.

Вот @ibond говорит что лучше бы запретили и после a:byte обходится без ;.

В Delphi и Lasarus ровно так же. Если есть совместимость, странно её уничтожать.

Если совместимость - тормоз из прошлого, можно и уничтожить. Но в данном случае оно вроде не тормоз?

Да лучше бы заставили ставить ; в конце каждой строчки. Исправить старую программу не так сложно будет.

Ну… есть синтаксис языка Паскаль, который говорит, где ставить надо, а где - можно. Вот на него покушаться - это зло.

А такая путаница - не зло?

А какая тут путаница? Точку с запятой разрешено не ставить перед end.

А это что?

А это то, что функция должна иметь тело (begin … end), либо упрощенный однострочный синтаксис с оператором присваивания, а описание класса/типа должно завершаться end. Тут налицо нарушение, компилятор не понимает, где закончилась функция, где - класс. Ну как-то надо почаще вспоминать, когда программа пишется, про тот анекдот с японской пилой и суровых сибирских мужиков.

1 лайк

У меня, если честно, ни разу подобных ошибок не было. Я порой читаю сообщения об очередных проблемах и балдею, да откуда, чёрт возьми, это всё появляется!

Давайте не тратить время на обсуждение того, что что-то кому-то не нравится. Этот синтаксис есть, он правильный.

2 лайка