2017-01-21 3 views
0

Некоторые символы, которые я вводил в редактор, отображались не так, как на клавиатуре. Поэтому у меня есть сообщения об ошибках:Набор символов PL/I и персональные сообщения IBM - отображаются неправильные символы

Характер с десятичным значением 176 не относится к символу PL/I . Он будет проигнорирован.

при попытке скомпилировать программу PL/I.

Иногда символ может отображаться даже правильно, но у меня все еще есть подобное сообщение об ошибке.

Примеры этих символов - это символ, который представляет логический ИЛИ, логический NOT.

Как решить эту проблему? Это настройки редактора или настройки программы IBM Personal Communications? Или, может быть, лучше ввести 16-код этих символов (как это сделать, если это возможно, и как определить, какой код мне нужен)?

+1

Вы используете 3270 ISPF? Клиент GUI ISPF? RD/г? Какую кодовую страницу ожидает компилятор? Какая кодовая страница ISPF (предположим, что вы ее используете) с помощью? Какая кодовая страница - ваш эмулятор 3270 (предположим, что вы используете его) с помощью? – cschneid

+0

Похоже на то, что вы используете для ввода, используется сломанная вертикальная полоса против вертикальной полосы. Это согласуется с комментарием @ cschneid. Кроме того, некоторые европейские кодовые коды заменяют вертикальную полосу и восклицательный знак (немецкий пример). Пожалуйста, сообщите нам дополнительную информацию. – zarchasmpgmr

ответ

1

Существует много мест, где это может пойти не так ...

  1. Клавиатура-драйвер на клиентском компьютере должен быть настроен правильно для клавиатуры вы используете. Но если другие программы работают правильно, и только эмуляция мэйнфреймов ведет себя странно, тогда это должно быть ОК.
  2. Задание PCOMM должно быть настроено на использование правильной кодовой страницы хоста. Спросите своих мэйнфреймов технических парней, что используется и соответствующим образом настройте эмуляцию терминала. Поскольку мы не используем PCOMM, я не могу с этим поделать, вам придется немного обойти настройки сеанса.
  3. В PL/I большинство символов взяты из диапазона, который идентичен большинству кодовых страниц EBCDIC. Основными исключениями являются символы для OR- и NOT-операторов, которые могут отличаться. IBM-default для OR - '4F'X, который является символом трубы '|' в кодовой странице 1140 (на английском языке), но восклицательный знак '!' в кодовой странице 1141 (немецкий). По умолчанию для не '5F'X, который является логическим НЕ-знак '¬' в 1140 году, но каретка '^' в 1141
    Поскольку эти проблемы хорошо известны компилятор предлагает два варианта OR() и NOT() установить символы, которые будут использоваться для этих операторов. Таким образом, вы можете посмотреть в своем компиляционном листике, установлены ли эти параметры в вашей установке и каковы их значения, поскольку это символы, которые вы должны использовать.
+0

Но нужно набрать OR или NOT, так много лишних усилий, когда вы можете просто надеяться, что сможете вставить что-то из SO вместо :-) –

+0

@BillWoodger Проблема в том, что в вашем исходном коде вам нужно использовать символы-операторы, поскольку 'OR' и' NOT' не являются ключевыми словами в PL/I (надеюсь, что я правильно понял ваши комментарии). Если опция 'PROCESS'-compile-option действует, можно подумать о настройке опций OR- и NOT для каждой программы, используя инструкцию' PROCESS'. –

+0

Спасибо. Я неправильно понял OR() и NOT().Параметры компилятора для изменения символа, который используется как оператор or/not? И у вас нет возможности вводить OR или NOT предпочтение операторам, потому что OR и NOT не существуют. Попасть туда... –

Смежные вопросы