使用RPG和DSPF转到文本字符串中的第n个字符

时间:2019-02-08 14:12:56

标签: rpgle

我有一个运行交互式DSPF的程序。现在,我在RPG程序中用字符填充字段。前两个字符“ ab”。但是我想要的是,当我在跳至该字段时通过DSPF时,光标位于“ a”下方,因为这是该字段的第一个位置。我想跳到该字段的第3个位置,以便光标位于输入之后,因此我可以轻松地继续输入而不是按箭头键。只是想知道是否有办法做到这一点。我已经知道DSPATR(PC),但是要确保它到达我想要的第三位置的第一位置。 CURLOC是记录级别,对我无济于事,我只希望这一个文本字符串位于第3个字符处,而不是首先在其上制表符。我也希望可以更改前两个字符,这就是为什么我不只是简单地将它们设置为变量并将其连接起来,或者只是在幕后合并而已。我只想跳至文本字符串,光标位于第3个字符的位置。

1 个答案:

答案 0 :(得分:0)

我认为CSRLOC是您的答案。
来自fit_levy()

  

关键字的格式为:

     

CSRLOC(field-name-1 field-name-2)

     

  关键字指定内容为行的两个字段的名称   编号(对于字段名称1)和位置编号(对于字段名称2)   光标位置。字段名称1和字段名称2为3字节,   分区的十进制隐藏字段。您的程序使用这些字段来告诉   光标所在的IBM®i操作系统。

A          R RECORD1                   CSRLOC(LINNBR POSNBR)
A            TITLE         40   B  1  2
A            PAGE           5Y OB  1 60
A            TEXT        1760   B  2  1
A            LINNBR         3  OH
A            POSNBR         3  OH

它的记录级别这一事实并不重要,因为I / O是通过记录而不是字段来完成的。当记录为EXFMT时,光标将定位在您请求的位置。

如果这不起作用,您唯一的其他可能选择是摆脱显示文件,并使用docs直接与屏幕连接。