有没有什么方法可以多次读取cobol中的顺序文件?例如,您到达文件的末尾,然后从文件的开始处返回?在cobol中读取顺序文件
回答
关闭文件,重新打开并重新阅读。
我很想知道为什么要这样做?
在这种情况下,JOINKEYS
的DFSORT
帮助很多。如果您的要求只是从file1中搜索字符串file2中的字符串,我强烈建议您不要使用这种方法。
嗨拉贾,Joinkeys或dfsort不会帮助,因为没有钥匙,也没有什么可以排序。文件1是垃圾,文件2每行只有一个字符串。目标是从文件2的每行中找到文件1中的单个字符串。如果在文件1中找到了某个字符串,请在文件2中将该标记放在该字符串中,然后在下一行中获取下一个项目,然后查找从顶部发生文件1中的字符串。 – Grekoz
我明白了......但如果你觉得你可以使用它们,仍然会尝试合并......我觉得你曾经想过......只用你的cobol程序逻辑...如果你仍然需要一些建议,把一个简要的文件布局和lrecls的要求可能会尝试解决... –
替代方法:使用实用程序(或其他COBOL程序)复制文件1。副本文件1a具有ORGANIZATION RELATIVE(可能是VSAM RRDS)。在您的扫描/匹配程序中,您可以使用START语句重新定位到文件1a的第一条记录。
等价地,你可以创建一个索引顺序文件1a,其中键只是一个随机的升序数,恰好与记录号相同。
任何时候打开,处理,关闭,重新打开,重新处理,重新关闭都是简单的愚蠢,更不用说高达1,000。这是非常非常耗时的。
使用Cobol程序,您可以将较小的文件存储在一个表中,并按照建议对较大文件处理表。
但是,您不需要程序。 JOINKEYS 将给你解决方案。
你没有钥匙?哦,亲爱的,亲爱的。你做一个。对于两个文件上的每条记录,您都使用相同的单字节密钥,并且具有相同的值。在该键上执行JOINKEYS。在JOINKEYS上指定SORTED(如果您有DFSORT,则指定NOSEQCK)您有“笛卡尔”联接。使用SS(一个子字符串匹配)可以用于整个记录或记录的一部分。你的实际要求的输出是不清楚的,我不认为你现在会想出来。
使用DFSORT,您可以一步完成。使用SyncSort,如果您的版本支持JNFnCMTL文件,则可以一步完成。
- 1. 读取COBOL DAT文件
- 2. Cobol二进制文件读取
- 3. 在COBOL中读取文件中的浮点数
- 4. COBOL读取/存储在表
- 5. 按照MULE的顺序读取文件
- 6. 使用os.listdir读取文件的顺序?
- 7. COBOL - 如何从.dat文件中读取和导出文本
- 8. vb.net从文件夹中读取所有文件的顺序
- 9. 按文件名中的数字顺序读取文件
- 10. 从文件夹中读取文件的顺序
- 11. 要按顺序读取文件夹中的所有文件
- 12. 在Python中按特定顺序读取文件
- 13. 如何在python中以相反顺序读取csv文件
- 14. 在BASH脚本中按顺序读取文件
- 15. 如何以排序顺序读取目录中的文件?
- 16. java文件从文档中间读取反向顺序
- 17. COBOL程序不写文件
- 18. COBOL程序顺序读取平面文件并将其写入输出文件,无法读取所有循环将无限
- 19. 从linux中的目录中读取文件的顺序
- 20. newbie:php如何在文件名中按文件名的顺序读取
- 21. 顺序文件中读取在IBM的DataStage不正确的文件数据8.1
- 22. 阅读索引文件(COBOL)的问题
- 23. 从多个文件夹中读取多个非顺序图像
- 24. 读取文件在序言
- 25. 如何在Java中顺序读取期间获取当前文件位置?
- 26. 如何从文档目录中的子文件夹顺序读取文件iPhone
- 27. 如何读取文件,颠倒顺序并写入逆序
- 28. 读取和写入数据到顺序访问文本文件
- 29. python - 读取文本文件,操作顺序
- 30. Directory.EnumerateFiles读取顺序(C#)
Hi TrueDub,我正在搜索文件2中文件1中字符串的出现,但没有键。尽管如此,谢谢你的出色答复。 – Grekoz
将文件读入数组并轻松搜索每个文件会更容易吗?它肯定会更快,但如果它是一个巨大的文件,您可能会遇到内存问题。 – TrueDub
在这种情况下,'DFSORT'的'JOINKEYS'帮助很多。我强烈建议你的方法,如果你的要求是只搜索字符串从file1与字符串在file2中的列表... –