TSO / MVS上传问题

时间:2009-02-23 03:43:08

标签: ftp cobol mainframe uploading

我正在将一个ebcdic文件(从ascii转换)从Windows操作系统上传到大型机。我的问题是,当我上传它后检查文件时,我看到很多新行。 当我试图用它的十六进制转储检查它时,我发现当大型机看到x'15'时,它会将其转换为换行符。在文件中有压缩小数,所以十六进制可以包含一个x'001500001c'但是当我上传它时,大型机将它误认为是一个新行。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

如果您发送的文件已经在我认为的EBCDIC中,您应该将您的FTP客户端(或库(如果上传由您的代码完成)放入二进制(IMAGE TYPE)模式而不是ascii / EBCDIC。

答案 1 :(得分:1)

这取决于您要上传到的目标“文件”的类型。

如果要上传到具有固定块大小的成员(例如,FB80),则需要确保在传输之前用空格填充所有行(在二进制模式下)。

文本模式传输不适用于二进制文件(如果文件包含压缩小数,则二进制文件 - FTP没有可靠的方法来检测实际的行尾字符。)

您需要修复Windows ASCII到EBCDIC转换器才能生成固定长度的记录。

唯一的另一个选择是在大型机上使用REXX脚本,但这仍然需要能够区分真实的行结束标记和二进制数据中的标记。

由于它由BCD nybbles组成,最后一个是0xC或0xD,你可能会告诉存在一个压缩十进制数,但这也可能导致误报或否定。

我的建议:当你将它从ASCII转换为EBCDIC时,同时将这些行填充到所需的记录长度。

我想提出的另一点是,如果你只想查看大型机上的文件(不要从任何需要EBCDIC的代码中使用它们),ISPF编辑器会包含一些新命令(截至z) / OS 1.9如果我没记错的话。)

SOURCE ASCII将数据显示为ASCII而不是EBCDIC。此外,LF命令允许您按下FB成员中的ASCII流以正确修复行结尾。