- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 PL/I 代码:
declare 1 u union,
2 c character(1),
2 ci fixed binary(4) unsigned;
ci = data_mem(data_ptr);
put list (c);
它的作用是接受一个整数并输出它,就像它是一个 ascii/ebcdic 值一样。所以它显示了字符。到目前为止这有效。现在的问题是每个字符以24个空格间隔打印,就好像插入了3个TAB一样。我尝试先将 c 转换为字符串,然后应用 trim() 但这没有帮助。
有什么想法吗?
最佳答案
这是 PRINT 属性文件的默认 PUT LIST 行为。来自 IBM Enterprise PL/I for z/OS Language Reference,在面向流的数据传输 -> LIST -> PUT list-directed(强调我的)下:
The values of the data-list items are converted to character representations (except for graphics) and transmitted to the data stream. A blank separates successive data values transmitted. For PRINT files, items are separated according to program tab settings (see “PRINT attribute”).
下一个手册部分将讨论 PRINT 属性。这里我们有
Data values transmitted by list- and data-directed data transmission are automatically aligned on the left margin and on implementation-defined preset tab positions.
由于您省略了 FILE,因此您的 PUT 将转到默认 FILE(SYSPRINT)。 SYSPRINT 隐式定义为 FILE ENVIRONMENT(F RECSIZE(121)) OUTPUT PRINT STREAM(请参阅语言引用中的输入和输出 -> 文件属性 -> 文件常量,以及定义和使用连续数据集 -> 将 PRINT 文件与流 I 一起使用程序员指南中的/O)。 IIRC,默认值是每 24 个,每行 5 个选项卡,与 20 世纪 60 年代末 PL/IF 早期常见的旧 120 字节打印机兼容。这可以通过声明 PLITABS 结构来修改(在前面提到的手册部分中描述)。
LIST 和 DATA 导向的 I/O 旨在成为快速且肮脏的 I/O 接口(interface),很少考虑输出格式(但对输入非常宽容)。 EDIT 更适合格式化输出,但它确实显示了许多用于输入和输出的 FORTRAN 根源。就我个人而言,对于使用格式化输出的传统报告以及记录输入,我会使用记录 I/O,这类似于标准 COBOL I/O。
关于mainframe - PL/I 且不在制表位上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42145253/
我是一名优秀的程序员,十分优秀!