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

パスワード:


パスワード紛失

全角空白文字の Trim RTrim

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 | 投稿日時 2012-4-10 10:28
null  長老   投稿数: 191
すいません。uniPaaS でこんな機能があったか確認なのですが。

変数A = '取引先名1     '
のように文字列の終端に全角の空白が入っている時、
RTrim(変数A) としても '取引先名1' とはならず、
終端の全角の空白が消えませんでした。

終端の全角の空白を消す関数って無かったでしたっけ?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-4-10 12:51
nkmt  長老   投稿数: 1668
RepSTRって関数があったと思います。

REPSTR(TRIM(項目),'△','') △は全角スペース

でいかがでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-10 17:10 | 最終変更
null  長老   投稿数: 191
回答ありがとうございます。なるほど、RepStr ですか。
しかし、'取引先△○○部△△△' だと
'取引先○○部' となり、'取引先' の後の△も消えてしまいました。
他システムで作成したデータに全角の空白が入っているので
文字列の終端の空白を除去しながら、取り込みたいんですが
地道に後ろから全角の空白を除去していくしかないのかなぁ〜
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-10 17:39
nkmt  長老   投稿数: 1668
Nullさん
終端の全角空白の除去と書いてありますね。
私の提示ではNGですね。
失礼しました。

Len関数
Rep関数
Trim関数
ブロック Whileなどをかまして、終端の全角空白を
変換かける以外方法は無いかもしれませんね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-10 17:50
KITT  新米   投稿数: 9
項目:A
Aに100%含まれない文字:■
全角スペース:△
とすると、

RepStr(RepStr(Trim(RepStr(RepStr(A,' ','■'),'△',' ')),' ','△'),'■',' ')

でいかがでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2012-4-10 18:09
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
すべて全角であればHAN関数で半角にしてRTRIMで右側の空白を除去してZEN関数で全角に戻す方法ではいかがでしょうか
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-4-10 18:25
null  長老   投稿数: 191
皆様、回答ありがとうございます。
変換データを見たところ今回対象の項目には
すべて全角が入っているので、ISHIJIMA さん案でいけそうです。

nkmt さん、KITTさん、ISHIJIMA さん、ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-4-11 9:11 | 最終変更
nkmt  長老   投稿数: 1668
Rtrimは殆ど使った事なかったので勉強になりました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-11 12:40
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

そうですね、Rtrim() 関数は比較的新しい関数なので、古くから
Magic やっている人は使っていない人が多いみたいです。でも、
便利ですよ。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-11 16:54
nkmt  長老   投稿数: 1668
Tandaさん こんにちは。
Rtrimの存在は把握しておりましたが、
先頭スペースの除去をしてはいけない
という場面に遭った事もなく、Trim一辺倒でした。
ISHIJIMAさんの発想Goodですね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-4-18 11:13
null  長老   投稿数: 191
少し時間が空きましたが、最終的に対象文字列は
全角文字しか入らないので(COBOL の PIC N 項目)
次のような戻り値を持つユーザー定義関数にしました。
□は全角スペースです。

uRTrim パラメタ Pi_文字列
RepStr(RTrim(RepStr(Pi_文字列,'□',' ')),' ','□')

使用例
uRTrim('あああ□いいい□□□') → 'あああ□いいい'

教えていただいた日本語関数の Zen() ですが、
「半角スペースは全角スペースに変換しません」という
仕様がありましたので今回は見送りました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-4-20 9:53
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
ZENS関数であれば問題ないですよ
投票数:0 平均点:0.00

  条件検索へ


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