Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm midrange 如何使用CPYFRMSTMF命令将源代码放入QRPGLESRC文件_Ibm Midrange_Rpgle - Fatal编程技术网

Ibm midrange 如何使用CPYFRMSTMF命令将源代码放入QRPGLESRC文件

Ibm midrange 如何使用CPYFRMSTMF命令将源代码放入QRPGLESRC文件,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我下载了一个源代码文本文件,保存在IFS中。如果有人在乎的话,那就是Scott Klement的IFSIO__H文件,一个包含使用集成文件系统的RPG原型的头文件。我想将此代码与其他源代码一起存储在库文件系统中,以便将其用作RPG程序的/copy成员 我希望使用以下命令执行此复制: 此操作失败,消息为“数据库文件CCSID为65535.”和“未复制流文件”。诚然,目标文件使用默认的CCSID,就像我的所有源代码文件一样,但是我尝试在其他参数中输入转换信息的内容没有任何区别 是否有方法使用此命令执

我下载了一个源代码文本文件,保存在IFS中。如果有人在乎的话,那就是Scott Klement的IFSIO__H文件,一个包含使用集成文件系统的RPG原型的头文件。我想将此代码与其他源代码一起存储在库文件系统中,以便将其用作RPG程序的/copy成员

我希望使用以下命令执行此复制:

此操作失败,消息为“数据库文件CCSID为65535.”和“未复制流文件”。诚然,目标文件使用默认的CCSID,就像我的所有源代码文件一样,但是我尝试在其他参数中输入转换信息的内容没有任何区别

是否有方法使用此命令执行我想要的复制?我应该使用另一个命令吗

根据错误消息,可能不允许复制到CCSID为65535的文件,但我知道这不是真的。我经常使用以下命令上载打印机文件覆盖图:

CPYFRMSTMF FROMSTMF('/QOpenSys/xxxxxxxx/xxxxxx.plt')
TOMBR('/QSYS.LIB/QGPL.LIB/AFPIMAGES.FILE/xxxxxx.MBR')
MBROPT(*REPLACE) CVTDTA(*NONE) ENDLINFMT(*FIXED) TABEXPN(*NO)

这将成功地将我使用AFP打印驱动程序在AutoCAD中创建的覆盖打印文件复制到QGPL/AFPIMAGES文件,然后我可以运行CRTOVL命令创建打印机覆盖。我刚刚检查过,QGPL/AFPIMAGES的默认CCSID为65535,与QGPL/QRPGLESRC文件相同。这意味着此命令有时可以写入文件成员,但我的参数可能有误,或者QRPGLESRC源代码文件中有其他原因导致此问题。

假设您的IFS文件实际上与源文件的CCSID相同,请尝试CPYFRMSTFM CVTDTA*无。

假设您的IFS文件实际上与源文件的CCSID相同,请尝试CPYFRMSTFM CVTDTA*无。

老实说,您的源文件、DB表和系统值QCCSID应该是CCSID 65535之外的内容

65535表示二进制数据,不翻译

我相信打印机覆盖图实际上是二进制数据,而且你使用的是CVTDTA*没有,所以这就是它工作的原因

我认为CVTDTA*在这里没有帮助,因为IFS文本可能是ASCII

要对源代码使用CVTDTA*NONE,您需要做的是使用CCSID 37(假设为英语)创建IFS文件,然后将源代码FTP到其中

删除IFS文件,并使用EDTF'/QOpenSys/xxxxxxxx/ifsio_h.rpgle.txt'创建该文件。使用DSPLNK检查CCSID,如有必要,使用13个更改属性将CCSID更改为37。现在,当您将源文件FTP到中时,系统将在那里进行翻译,您可以在CPYFRMSTF上使用CVTDTA*NONE

首先,只要有正确的CCSID就容易多了


早在设置新的AS/400文档时,第一步就是将QCCSID系统值设置为出厂默认值65535。太多的人从不烦恼。IBM现在为新系统提供了适用于所安装语言的QCCSID。

老实说,您的源文件和DB表以及系统值QCCSID应该是CCSID 65535之外的内容

65535表示二进制数据,不翻译

我相信打印机覆盖图实际上是二进制数据,而且你使用的是CVTDTA*没有,所以这就是它工作的原因

我认为CVTDTA*在这里没有帮助,因为IFS文本可能是ASCII

要对源代码使用CVTDTA*NONE,您需要做的是使用CCSID 37(假设为英语)创建IFS文件,然后将源代码FTP到其中

删除IFS文件,并使用EDTF'/QOpenSys/xxxxxxxx/ifsio_h.rpgle.txt'创建该文件。使用DSPLNK检查CCSID,如有必要,使用13个更改属性将CCSID更改为37。现在,当您将源文件FTP到中时,系统将在那里进行翻译,您可以在CPYFRMSTF上使用CVTDTA*NONE

首先,只要有正确的CCSID就容易多了


早在设置新的AS/400文档时,第一步就是将QCCSID系统值设置为出厂默认值65535。太多的人从不烦恼。IBM现在为新系统提供了适用于所安装语言的QCCSID。

只是为了让您知道您可以直接/复制IFS文件。

只是为了让您知道您可以直接/复制IFS文件

CPYFRMSTMF FROMSTMF('/QOpenSys/xxxxxxxx/xxxxxx.plt')
TOMBR('/QSYS.LIB/QGPL.LIB/AFPIMAGES.FILE/xxxxxx.MBR')
MBROPT(*REPLACE) CVTDTA(*NONE) ENDLINFMT(*FIXED) TABEXPN(*NO)