現在はRPG-CGIでRPG内にHTMLを記述しています。それをIFSにhtmlだけをおいて入出力させようとするとまず、RPGでそのIFS上にあるhtmlを読み込んで出力する必要があるのですが、読み込んだ地点でEBCDIC/ASCII変換することになると思っていますその辺の入出力の知恵をお借りできませんか
RPG の演算用に ASCIIで保管されている IFSストリームをASCIIから EBCDIC に変換したのでは折角、ASCII で IFS に保管した意味がなくなります。IBM HTTPサーバーや Apache は 省略時は EBCDIC->ASCII 変換ですが設定によって 無変換、つまり ASCII->ASCII で出力することができますので設定をお調べください。CGI が最も処理時間を要するのはコード変換ですのでコード変換は極力少なくするようにしなければなりません。ASCII で読み込んだ IFS ストリームに対して文字列の検索等が必要になるかと思いますが検索する文字列のほうを EBCDIC->ASCII に変換して ASCII のままで処理するようにしてください。ANSI-C (C言語) であれば #pragma convert(850) : (ここで記述したソースの定数はすべてASCII と見なされる) :#pragma convert(0)という便利な ASCII 記述の方法があるのですが RPG では、このような機能はありません。唯一使えそうなのが %GRAPH ですが。
htmlをRPG内に読込むのならIFSに置くのではなくhtmlだけ切り出してソースメンバーに登録したらいかがでしょうか。例えば、CGILIB/QHTMLSRC(HTML1)で作成し、このファイルをOVRDBFしてREADで読込む様にする。おそらくHTMLはPCで作成するかと思いますが、IFSにコピーするにはFTPか何かでUPすると思いますのでUPする手間は同じだと思います。(IFSをドライブに割り当てていたら別ですが...)逆にEBCDIC/ASCII変換の回数が減って良いのではないでしょうか。
> htmlをRPG内に読込むのならIFSに置くのではなく> htmlだけ切り出してソースメンバーに登録したらいかがでしょうか。> 例えば、CGILIB/QHTMLSRC(HTML1)で作成し、> このファイルをOVRDBFしてREADで読込む様にする。> おそらくHTMLはPCで作成するかと思いますが、> IFSにコピーするにはFTPか何かでUPすると思いますので> UPする手間は同じだと思います。> (IFSをドライブに割り当てていたら別ですが...)> 逆にEBCDIC/ASCII変換の回数が減って良いのではないでしょうか。要は画面ファイルのようにCGILIB/QDSPSRCにDSPファイルを置くのと同じ要領ということですかね?そのときにそのファイルを読み込むやり方がわからないのですが、OVRDBFでどのように記述したらいいのでしょうか?そうなるとCLPGMがでてきますよねRPG-CGI、CLの呼び出し手順はどうなるのでしょうか
そうです。DSPFやPRTFの様に定義を外出しする。方法として幾つかあると思います。@ファイルをUSROPN指定してQCMDEXCでOVRDBFしてからファイルをOPENする。AEXtFILE、EXTMBRキーワードを指定するです。