我有一个包含不同名称列表的文件。有些人出现两次或更多。
我想要显示两次或更多次出现在此列表中的所有艺术家。
我该如何处理?
提前致谢,
斯隆
答案 0 :(得分:0)
在JCL SORT中执行此操作更容易:
//SORT30 EXEC PGM=SYNCSORT,COND=(8,LT),
// PARM=('INCORE=OFF,DYNALLOC=SYSDA',EQ
//*
//STEPLIB INCLUDE MEMBER=SYSTEP00
// INCLUDE MEMBER=SYSORT00
//*
//SORTIN DD DISP=SHR,DSN=AA.YOUR.INPUT.FILE
//SORTOUT DD DISP=SHR,DSN=AA.YOUR.OUTPUT.FILE
//SORTXSUM DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTMSG DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,26,CH,A)
SUM FIELDS=NONE,XSUM
/*
//*
SORTXSUM SYSOUT将在那里有重复项。只需将FIELD=
修改为艺术家数据的位置
答案 1 :(得分:0)
我该如何处理?
步骤1:收集有关输入文件的信息,例如文件名和记录布局。还有关于输出的信息,例如它是数据文件还是报告。
第2步:使用此信息编写file control
和file description entries
的代码。
步骤3:确定要在procedure division
中使用的算法,包括执行该算法所需的任何数据项。
对于算法,会有一个循环,但请记住,在进入循环之前需要读取两个记录,并且在循环结束后可能有一个未写入的名称。您还需要一个计数器来确定名称是“两次或更多次”。
步骤4:编写算法代码。
第5步:编译和测试。
步骤6:如果有错误,您需要帮助纠正这些错误,请发布代码和问题描述。
答案 2 :(得分:0)
如果文件很小,则可以将数据存储在WS中,然后编写简单的排序,例如在具有重复数据的字段上进行buble排序。如果文件很大(可能不是您的情况),则应使用“外部排序”或“内部排序”,然后选择重复项。如果您不关心资源,请创建一个KSDS并从文件中加载它。