我们可以用Mainframe中的另一个字符串替换部分数据吗? 例如假设我有一个长度为80的PS。 从第72列到第80列,存在一些行号。 我想通过特定的字符串说TEST更改这些行号。 我们可以使用任何形式的“C ALL”来实现这一目标吗? ABC文件---
=COLS> -1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
000004 text123 12360002
000005 textabc 12370002
此致 Saisha
答案 0 :(得分:7)
您可以在ISPF编辑器中轻松完成此操作(您的示例中很清楚):C p‘#’ ‘TEST’ 72-80
将使用“TEST”替换第72列到第80列中的任何数字字符串。
答案 1 :(得分:0)
您至少有两个选择:
a)将DFSORT用于INREC IF语句,或;
b)使用FILE-AID。
以下是FILE-AID批处理的示例:
//STEPNAME EXEC PGM=FILEAID,PARM=TSO
//DD01 DD DSN=INPUT.FILE,DISP=SHR
//DD01O DD DSN=OUTPUT.FILE1,DISP=OLD
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSIN DD *
$$DD01 COPY EDITALL=(72,6,C'AAAA',C'BBBBBBBB')
答案 2 :(得分:0)
您有许多选项,其中没有一项可以对数据进行“就地”更改。也就是说,他们将读取输入并将新文件写为输出。
毫无疑问还有其他选择。
答案 3 :(得分:0)
我个人认为源代码中的序列号无用且令人讨厌。 (这也是73-80,而不是72-80顺便说一句)。当源代码保存在卡片上时,它们对于重新排序源“甲板”非常有用,这些“甲板”意外掉落,卡片散落在各处。如今,由于源存储在磁盘上并在线编辑,它们完全没有用处,也没有人再次使用它们。每当我找到它们时,我都会将它们改为空格。这也允许源以可变长度格式存储,节省可观的磁盘空间;-)第1列到第7列中的COBOL序列号同样没有用处。将这些更改为空格可提高可读性,并使这些列中的任何合法注释更加突出。