ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

文字列操作関数中のIF文について

このトピックの投稿一覧へ

なし 文字列操作関数中のIF文について

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2011-11-24 23:33
MTA  新米   投稿数: 16
質問ばかりで、申し訳ありません。
"v9Plus"から"uniPaaS v1 plus"のマイグレーションのですが、困った問題があります。

ヘルプの「Unicodeを利用する場合の注意事項」の存在は知っていましたが、今回unicode変数を使わないし関係ないやと思っていましたが、動作確認中に不思議な動きをするので、再確認しました。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ただし、IF関数およびCASE関数では、以下の扱いになります。
・文字定数は、Unicode型と扱われます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

文字列操作関数のパラメータに、if文で文字定数をセットするのは、比較的特殊な作りでもないと思いますが、byte単位での処理を期待していた物が、文字単位で処理されてしまいます。

たとえば
・v9,uniPaaS 同じ
len('奇数') → 戻値:4

・v9 と uniPaaS で違う
len(if((X mod 2)=0,'偶数','奇数')) → 戻値:v9は4、uniPaaSは2

見つけ次第UnicodeToANSIをif文にかぶせていますが、問題箇所の対象を絞り込むのが大変なので、この現象を回避できる方法がありましたらと思い投稿しました。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約