V5R2を使用しています。Aレコードが3000バイト、Bレコードが1000バイト、Cレコードが50バイトのテキストファイルを取り込み、各々のレコードの何バイトかをバッチ処理の値で置き換えて、再度同じバイト数のテキストファイルを作成しようとしています。(各レコードの後半バイトはブランクで埋められています。)各々のレコードには漢字を含んでおり、SJISのコードのままCPYFRMSTMF CVTDTA(*NONE)で物理ファイル(3002バイト)に取り込んでいます。バッチ処理の結果の値をSJISに変換して、各レコードの値を置き換えてからテキストファイルにしようとしていますが、3000・1000・50バイトのテキストファイルにする方法がわかりません。SJISでCRLF(0D0A)をセットしてCPYでテキストファイルにすると、CRLF以降のバイトも文字と認識して固定長になってしまい、CPYTOSTMFでテキストファイルにしようとする場合にはENDLINFMT(*FIXED)を指定すると固定長になり、ENDLINFMT(*CRLF)を指定するとブランクがトリミングされて3000・1000・50バイトになりません。何か良い方法はないものでしょうか。
http://www.as400-net.com/database.html にある、19. データ・ベースをCSV形式に変換して共有フォルダーにコピーするには?を参考になさってください。IFS と DB2/400 のあいだの移行には、まだ問題があります。直接、C/400関数を RPG から起動したほうが確実で安全です。近日中に RPG による IFSファイル の処理を記述致します。