新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
RE:2バイト文字列の比較方法 IKD さん [ 9月4日(火) 17時24分 ]

    ILE-RPG で先頭文字より比較したのであれば

    %SUBST を使って
    D STR_1           C                   CONST(' 東京都港区 ')
    D STR_2           C                   CONST(' 東京都 ')

               IF        %SUBST(STR_1:1:7) = %SUBST(STR_2:1:7)
                :
               END

    のようにして比較すればスマートな記述で正しく動作しますので
    お試しください。

    RE:2バイト文字列の比較方法 kayo さん [ 9月5日(水) 9時44分 ]

      > ILE-RPG で先頭文字より比較したのであれば
      > 
      > %SUBST を使って
      > D STR_1           C                   CONST(' 東京都港区
       ')
      > D STR_2           C                   CONST(' 東京都 ')
      > 
      >            IF        %SUBST(STR_1:1:7) = %SUBST(STR_2:1:7)
      >             :
      >            END
      > 
      > のようにして比較すればスマートな記述で正しく動作しますので
      > お試しください。
      > 

      IKDさん、ご回答ありがとうございます。

      D C#TEXT          C                   CONST(' 東京都港区 ')

      C          IF        C#TEXT = %SUBST(DBの項目ID:1:11)

      で試してみましたが、IF判定はFALSEになりました。
      %SUBST(DBの項目ID:1:12)でも試してみましたが、ダメでした。

      RE:2バイト文字列の比較方法 IKD さん [ 9月5日(水) 11時3分 ]

        それはダメだと思います。

        IF C#TEXT = %SUBST( ...) の C#TEXT には港区0/Fの0/F も比較の文字として
        含まれています。つまり 12 バイトです。
        従って この比較はつねに FALSE の結果となります。
        面倒でも IF %SST(C#TEXT:1:11) = %SUBST( ... ) として
        11 バイトとして 0/0f を比較からはずした IF文で比較してください。

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