将cobol COMP数据转换为ASCII

将cobol COMP数据转换为ASCII,cobol,Cobol,我正在使用实用程序vutil将一些COBOL dat文件转换为ASCII: vutil -extract input.dat > output.txt 我无法从COMP数据字段中获得人类可读的响应。 这是我的FD文件的一部分 这里是一个ASCII转换示例: 0107200230062003 ‚p00 20 ³° 6 00 6 转换仅适用于非COMP字段 是否有其他命令或替代实用程序或技术来转换COMP字段 注意,我不想进入Cobol世界,我只想转换数据并摆

我正在使用实用程序vutil将一些COBOL dat文件转换为ASCII:

vutil -extract input.dat > output.txt
我无法从COMP数据字段中获得人类可读的响应。 这是我的FD文件的一部分

这里是一个ASCII转换示例:

0107200230062003 ‚p00    20  ³° 6 00     6       
转换仅适用于非COMP字段

是否有其他命令或替代实用程序或技术来转换COMP字段

注意,我不想进入Cobol世界,我只想转换数据并摆脱它

可能的解决方案:

  • 您可能不想编写Cobol程序,对于一个文件,它可能是最快、最便宜的解决方案

  • 有各种各样的商业软件包声称可以读取Acu Cobol文件,但可能很昂贵

  • 对于这个文件,您可以查看,稍微修改一下,您就可以使它工作了。对于此Cobol Copybook,请尝试将其作为大型机导入或打开Cobol Copybook。我怀疑Open-?Cobol微焦点可能更好。(注:我是RecordEditor的作者)


  • 我想数据可能是,没有二进制文件和原始数据,我不能确定

    提供的数据中的前16个字节看起来像2个日期,因此我使用了FAT-DINI/FAT-DFIN,但这只是一个猜测:

        0107200230062003  ‚p00    20
    22223333333333333333008733000033
    00000107200230062003002000000020
    
    在recordEditor中,我得到:



    在RecordEditor库目录中,有一个JRecord.properties用于“定义Cobol方言”

    如果您不想进入COBOL世界,为什么要使用COBOL标记?在你“转换”它之前,你幻想它是什么编码?该系统是AcuCOBOL系统。假设有人拥有最新的许可证,请联系Micro Focus支持。我建议对他们重新措辞这个问题,尽管,既然你付钱给他们,他们会回答,不管你键入什么愚蠢的东西。我还想知道在这个问题上的投票结果。没有转换。如果你让一位同事/朋友投票支持你的问题,让它看起来更有趣,那么它就不起作用了。以下是一些文档:。甚至没有丝毫暗示有任何编码转换(因为没有)。您最好将问题改写为“这是一个四字节的二进制字段,当COBOL图片指示两位小数时,我如何理解小数部分的表示方式。假设您有一个四字节整数,存储在一个文件中,使用您喜欢的任何语言。现在,您的任务是获取该数据,并用它“做一些事情”以将其转换为ASCII“没有引用创建该记录的原始程序。如果没有其他解决方案,如何将四字节整数转换为ASCII将是我的下一次尝试。我只是有几张桌子需要转换,我希望我不必为这个临时问题学习如此低级的头痛。这不是希望你不必学习如此低级的头痛的问题,而是你将无法做到这一点(你不知道你在说什么)。如何将二进制值转换为ASCII码?这是一个毫无意义的声明@布鲁斯·马丁的第三条建议是你继续进行下去的唯一合理途径,因为你知道的还不够,你也不想知道。你需要用勺子喂,布鲁斯做到了。请不要自己尝试将这些二进制值转换为字符。
    我不想进入Cobol世界,我只想转换数据并摆脱它所以无论是1(大量COBOL代码)还是3(需要copybook)都是不可行的:-)第3个是可行的,不过…一个转换数据的外部工具,不用再考虑它们了。这是满足我需求的最佳解决方案。我在玩recordEditor,若它对我有用的话,我现在就让你们玩。终于有用了!多亏了Bruce Martin和他的优秀软件,您为我节省了大量的时间。您为copybook、“大型机”和“开放式Cobol”建议的配置都有效。我只是在导入关于列的副本时遇到了一些问题(我发现大多数COBOL布局中的第1-6列被编译器忽略,第72列之后的所有内容也是如此);无论是Cobol编译器(big-endian 4字节整数),它几乎总是相同的。困难在于正comp和其他大小(例如,s99 comp是一个或两个字节)。RecordEditor有一个JRecord.properties,允许您指定新的方言(当然有限制)。
    
        0107200230062003  ‚p00    20
    22223333333333333333008733000033
    00000107200230062003002000000020