PL / I字符集和IBM Personal Communications - 显示错误的字符

时间:2017-01-21 11:40:13

标签: mainframe pl-i

我在编辑器中输入的某些字符与键盘上显示的字符不同。所以我有这样的错误消息:

  

带小数值176的字符不属于PL / I字符   组。它将被忽略。

尝试编译PL / I程序时。

有时字符可以正常显示,但我仍然有类似的错误信息。

此字符的示例是表示逻辑OR,逻辑NOT的字符。

如何解决这个问题?它是编辑器的设置,还是IBM Personal Communications程序的设置?或者可能最好输入这些符号的16个代码(如果可能的话怎么做,以及如何确定我需要的代码)?

1 个答案:

答案 0 :(得分:1)

有很多地方可能出错......

  1. 必须为您使用的键盘正确配置客户端计算机上的键盘驱动程序。但是,如果其他程序正常工作并且只有大型机仿真行为奇怪,那么这应该没问题。
  2. 必须将PCOMM会话配置为使用正确的主机代码页。向大型机技术人员询问使用的是什么,并相应地配置终端仿真。由于我们不使用PCOMM,我无法帮助您解决此问题,因此您必须稍微查看会话设置。
  3. 在PL / I中,大多数字符取自大多数EBCDIC代码页中相同的范围。主要的例外是OR-和NOT-运算符的字符可能不同。 OR的IBM默认值为module.exports.getUnderUsersByRm = function(currentUser, callback) { function __getUserByRmId(rmId) { // return promise here return User.find({ rmUserId: rmId, isAlive: true, status: 'active' }).exec().then(function(users) { if (users.length > 0) { let promises = []; users.forEach(function(ele, i) { promises.push(__getUserByRmId(ele.rmUserId)); }); // return promise which will chain it to original promise // this is the key to getting the master promise to wait // for everything to be done return Promise.all(promises).then(results => { // add in previous results // flatten all the results together into a single array // and remove empty results results.unshift(users); return [].concat.apply([], results.filter(item => item.length > 0)); }); } else { return []; } }); } __getUserByRmId(currentUser).then(result => { callback(null, result); }).catch(err => { callback(err); }); } ,它是代码页1140(英语)中的管道符module.exports.getUnderUsersByRm = function(currentUser) { let visitedUsers = new Set(); function __getUserByRmId(rmId) { // return promise here return User.find({ rmUserId: rmId, isAlive: true, status: 'active' }).exec().then(function(users) { if (users.length > 0) { let promises = []; users.forEach(function(ele, i) { // make sure we aren't already processing this user // avoid circular loop let userId = ele.rmUserId; if (!visitedUsers.has(userId)) { visitedUsers.add(userId); promises.push(__getUserByRmId(userId)); } }); // return promise which will chain it to original promise // this is the key to getting the master promise to wait // for everything to be done return Promise.all(promises).then(results => { // add in previous results // flatten all the results together into a single array // and remove empty results results.unshift(users); return [].concat.apply([], results.filter(item => item.length > 0)); }); } else { return []; } }); } return __getUserByRmId(currentUser); } ,但代码页1141(德语)中有感叹号'4F'X。 NOT的默认值为'|',这是1140年的逻辑非符号'!',但是1141中的插入符'5F'X。 由于这些问题众所周知,编译器提供了两个选项'¬''^'来设置用于这些运算符的字符。因此,您可以在编译列表中查看这些参数是否已在您的安装中设置,以及它们的值是什么,因为这些是您必须使用的字符。