新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
IFS上のファイルの読み込み KS さん [ 5月28日(水) 12時59分 ]

    [OS/400のVER]:
    現在RPG-CGIでWEB化をしています。
    その際、HTMLはRPG内に記述しています。
    そうなるとはやりメンテナンス性に欠ける部分があるように思っています。
    そこでHTMLファイルだけIFS上においてそれを読み込むことができないだろうかと
    考えています。
    RPGでIFSのファイルを読む込むことはできるんでしょうか
    その際パス(?)の設定や読み込み方はどのようにすればいいかおしえてください

    RE:IFS上のファイルの読み込み IKD さん [ 5月29日(木) 9時49分 ]

      ご指摘のとおりです。
      従来の CGI の実行が遅いと評価されるのは
      CGI での EBCDIC/ASCII 変換に大量のオーバー・ヘツドを
      生じているからです。

       ・HTML ソースを RPG の中で記述している。
        ・HTML ソースを ソース・ファイルやデータ・ペースとして記述している。

      ... このような場合は、実行時間の 80 〜 90 % は、EBCDIC/ASCII に変換に
        時間を取られてしまいます。

      これに対して、ご提案のように HTML を ASCII コードで IFS に保存しておいて
      データ部分のみを EBCDIC/ASCII 変換して HTMLに埋め込んで送出するようにすれば
      最小のオーバー・ヘッドで済み、パフォーマンスを劇的に改善させることができます。
      Web は、パフォーマンスこそ命ですので、是非とも IFS に HTML を保存することを
      お勧め致します。(EnterpriseServer も当然、この手法です。)

      ご質問の趣旨であるRPG による IFS ストリーム・ファイルの処理の方法にさきましては
      このサイトの下記の記事がご参考になります。
       
      http://www.as400-net.com/rpg.html

      136. RPG でストリーム・ファイルを読み取るには

      RE:IFS上のファイルの読み込み ks さん [ 6月3日(火) 9時36分 ]

        現在はRPG-CGIでRPG内にHTMLを記述しています。それをIFSにhtmlだけをおいて
        入出力させようとするとまず、RPGでそのIFS上にあるhtmlを読み込んで出力する必要があるのです
        が、読み込んだ地点でEBCDIC/ASCII変換することになると思っています

        その辺の入出力の知恵をお借りできませんか

        RE:IFS上のファイルの読み込み IKD さん [ 6月3日(火) 10時17分 ]

          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 ですが。

        RE:IFS上のファイルの読み込み 伊集院博 さん [ 6月3日(火) 10時55分 ]

          htmlをRPG内に読込むのならIFSに置くのではなく
          htmlだけ切り出してソースメンバーに登録したらいかがでしょうか。
          例えば、CGILIB/QHTMLSRC(HTML1)で作成し、
          このファイルをOVRDBFしてREADで読込む様にする。
          おそらくHTMLはPCで作成するかと思いますが、
          IFSにコピーするにはFTPか何かでUPすると思いますので
          UPする手間は同じだと思います。
          (IFSをドライブに割り当てていたら別ですが...)
          逆にEBCDIC/ASCII変換の回数が減って良いのではないでしょうか。

          RE:IFS上のファイルの読み込み ks さん [ 6月3日(火) 11時6分 ]

            > 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の呼び出し手順はどうなるのでしょうか




            RE:IFS上のファイルの読み込み 伊集院博 さん [ 6月3日(火) 12時37分 ]

              そうです。DSPFやPRTFの様に定義を外出しする。
              方法として幾つかあると思います。
              @ファイルをUSROPN指定して
              QCMDEXCでOVRDBFしてからファイルをOPENする。
              AEXtFILE、EXTMBRキーワードを指定するです。 

          RE:IFS上のファイルの読み込み ks さん [ 6月3日(火) 11時44分 ]

            > 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の呼び出し手順はどうなるのでしょうか




お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス