ISPF / Mainframe将文件发送到主机,长度可变

时间:2016-03-14 18:45:38

标签: dataset host mainframe ispf

我需要帮助我尝试做的事情并且无法在任何地方找到帮助。

我尝试通过ISPF将文件上传到主机(ISPF - >命令 - >"将文件发送到主机")。我遇到的问题是该文件具有可变长度(它是通过SH脚本从DB2数据库导出的)并且它运行不正常。

我的意思是: 在Windows中,文件如下所示:

This is line one
This is the second line
And this is the third

但在主持人中,它总是这样:

This is line one This is
the second line and this
is the third

或类似的,取决于"记录长度"我在分配数据集时设置。

我不知道问题是我在主机上创建文件的方式。如果问题出在发送参数..或者可能是TXT文件。

我尝试使用不同的记录格式(F,FB,V,VB)创建数据集,并且所有数据集都相同。 并尝试修改这里的发送参数: Send parameters

并检查了txt文件,但似乎没问题。

好的,先谢谢你的帮助!抱歉我的英语很差。

更新03/18

嗨!我还在努力解决这个问题。但现在我有了更多信息!

似乎问题出在导出的文件中,而不是终端的配置。

我使用linux脚本从DB2数据库导出文件,并且我试图从Windows PC(具有E3270终端)上传它。 我读了很多,并注意到从DB2导出到linux的文件只使用" New Line"用于标记行尾(0A为十六进制)的代码,而Windows使用"回车+新行" (" 0D 0A"十六进制)。

问题可能存在吗?

我尝试用Windows创建一个新的txt文件(每行以0D 0A结束)..它工作得很好!但我试图修改导出的文件..添加一个"空格"最后,然后用0D改变那个空格hex(20)(所以我有0D 0A ..它没有让我"添加"一个新的hexa)..但它没有&# 39;工作。那......把整个理论扔给我哈哈,但也许我做错了什么。

好吧,谢谢!

1 个答案:

答案 0 :(得分:1)

从主机输出中,文件(数据集)被视为固定长度24.需要在发送中指定为变量(VB)。

从这里Personal Communications 6.0.0>Product Documentation>Books>Emulator User's Reference>Transferring Files看来您可以按照以下方式指定: -

  

记录格式

     

仅在未指定APPEND时对VM / CMS和MVS / TSO有效   文件传输。您可以选择以下任何一项:

Default
Fixed (fixed length)
Variable (variable length)
Undefined (undefined mode for MVS/TSO only)
     

如果选择“默认”值,则会选择记录格式   由主机系统自动完成。

     

为VM文件传输指定变量可启用主机磁盘空间   有效使用。逻辑记录长度(LRECL)

     

仅在未指定APPEND时对VM / CMS和MVS / TSO有效   文件传输。

     

输入要使用的逻辑记录长度(主机记录字节数)   LRECL文本框。如果将变量和未定义模式指定为   记录格式,逻辑记录长度是最大记录   文件中的长度。最大值为32767。

     

从工作站发送到主机系统的文件的记录长度   可能超过此处指定的逻辑记录长度。如果是这样,主持人   文件传输程序按逻辑记录长度划分文件。

     

将文本文件从工作站发送到主机时,如果是文本   文件包含2字节工作站代码(如汉字代码),   因为SO和SI已经改变了文件的记录长度   插入

     

要将包含长记录的文件发送到主机系统,请指定a   足够长的逻辑记录长度。

     

因为工作站文件的记录长度超过了逻辑   如果记录长度,则每条记录都不会正常显示消息   分为。要显示消息,请将以下规范添加到   工作站配置文件的[传输]项目:

     

DisplayTruncateMessage = Y

由于我无法访问,我实际上无法进一步研究这一点,但我记得使用文件传输可能有点混乱。

我建议使用 32767 作为LRECL,以及变量,并且可能会查看已链接的整个页面。 PC端的某些东西必须知道如何转换文件(即在LF确定记录的长度并在记录前加上该记录长度(如果我没记错2字节/一个字) )因此您可能必须将变量与另一个可选参数结合使用。

如果您点击该链接,您会看到记录格式是定义转移类型的一部分,您可能需要按照以下方式定义转移类型: -

Click Edit -> Preferences -> Transfer from the session window.
Click the tab for your host type or modem protocol.

The property page for the selected host or modem protocol opens. The items that appear depend on the selected host system.
Enter transfer-type names in the Transfer Type box, or select them from the drop-down list.
Select or enter the required items (see Items to Be Specified).

To add or replace a transfer type, click Save. To delete a transfer type, click Delete.
A dialog box displays, asking for confirmation. Click OK.