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

パスワード:


パスワード紛失

Len関数

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

なし Re: Re: Re: Re: Len関数

msg# 1.2.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-17 17:41
Tanda  長老   投稿数: 2151
ucmkitakan さん、こんにちは。

そうですね、式については「*2」を取ってしまえば OK ですね。かえって簡単になりますね。

あと、私が見たヘルプは、式テーブルから関数一覧を開いて、ZEN() 関数にカーソルを持って行ったときに表示されるヘルプです。

戻り値がはっきりと、「Unicode」と記述されているようです。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: Re: Len関数

msg# 1.2.1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-17 17:37
Jiro123  長老   投稿数: 271
次のようにしてみたらどうでしょう。

Len(UnicodeToANSI(Trim(Zen(A)),932))

Zen関数の結果がunicodeであると前提して、shift-jisに変換すれば良い、という訳です。

こちらでは、これで正しい結果が返ってきました。

Zen関数の結果がUnicodeというのはやっかいですね。

引数が文字型なら文字型(SJIS)で、引数がUnicode型ならばUnicode型で返されるようになれば、いいんですけどね。

投票数:0 平均点:0.00

なし Re: Re: Re: Len関数

msg# 1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-17 17:27 | 最終変更
ucmkitakan  一人前   投稿数: 91
仕様変更ですか。了解しました。

http://www.magicsoftware.co.jp/files/magic_help/uniPaaS1Plus/MGHELP.htm

Magic unipaas リファレンス/
 Unicodeサポート/
  式とUnicode_関数とUnicode変換

「全ての文字列の入力パラメータは、デフォルトのコードページを使用してANSIに変換され、全ての戻り値はUnicodeに変換されます。」
というのがそのことを示しているのですかね?

全角チェックは*2を削除すればOKですので、今後気をつけたいと思います。

Tandaさん、sigeno56さん、ありがとうございました!
投票数:0 平均点:0.00

なし Re: Re: Len関数

msg# 1.2.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010-9-17 17:05
Tanda  長老   投稿数: 2151
sigeno56 さん、こんにちは。

本当ですね。V1 Plus のヘルプを見ると、戻り値が「文字」から「Unicode」に変更になっていますね。どうやら仕様が変わったみたいですね。

いろいろ試してみましたら、ZEN() 関数で一旦、全角に変換したものを LEN() 関数で長さを計ると、ちゃんと2倍になっていました。

ひとつの式に両者の関数を混合させると、途中の計算では Unicode で処理されるみたいですね。

タンダコンピュータ/丹田 昌信
投票数:1 平均点:10.00

なし Re: Len関数

msg# 1.2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-17 16:37
sigeno56  長老   投稿数: 336
V1 Plus で 変数Aに TEST と半角を入力。

LEN(TRIM(A))で 4 が帰ってきました。これはいいとして

LEN(TRIM(ZEN(A)))で 4 で帰ってきました。ちょっとびっくり。

ZEN関数が unicode で返すという事でしょうか。
投票数:0 平均点:0.00

なし Re: Re: Len関数

msg# 1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-17 16:09 | 最終変更
ucmkitakan  一人前   投稿数: 91
レスありがとうございます。

後から追記させてもらったのですが、Unicodeにはしていないのですよ…。

V1PLUSだと、
len('test')なら8
len(zen('test'))だと4
になってしまいます。

V1であれば、どちらも8と返ってきます。
投票数:0 平均点:0.00

なし Re: Len関数

msg# 1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-17 15:57
Tanda  長老   投稿数: 2151
ucmkitakan さん、こんにちは。

カラムの「型」が「A=文字」から「U=Unicode」に変更になっているのではないでしょうか?

Unicode では、漢字1文字でも1バイトの計算となります。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

不満 Len関数

msg# 1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010-9-17 15:49 | 最終変更
ucmkitakan  一人前   投稿数: 91
全角をチェックするのに、

http://www.magicsoftware.co.jp/forum/modules/d3forum/index.php?post_id=4710

の方法でチェックを行っていました。
ところが、UnipaasV1だとうまくいっていたのが、UnipaasV1Plusにあげたところ、上手くいかなくなりました…。

なぜなのでしょうか???
ちなみにUnicodeにはしていません。
投票数:0 平均点:0.00

  条件検索へ


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