全角空白文字の Trim RTrim
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
ISHIJIMA
居住地: 静岡県
投稿数: 1827

ZENS関数であれば問題ないですよ
投票数:0
平均点:0.00
null
投稿数: 191

少し時間が空きましたが、最終的に対象文字列は
全角文字しか入らないので(COBOL の PIC N 項目)
次のような戻り値を持つユーザー定義関数にしました。
□は全角スペースです。
uRTrim パラメタ Pi_文字列
RepStr(RTrim(RepStr(Pi_文字列,'□',' ')),' ','□')
使用例
uRTrim('あああ□いいい□□□') → 'あああ□いいい'
教えていただいた日本語関数の Zen() ですが、
「半角スペースは全角スペースに変換しません」という
仕様がありましたので今回は見送りました。
全角文字しか入らないので(COBOL の PIC N 項目)
次のような戻り値を持つユーザー定義関数にしました。
□は全角スペースです。
uRTrim パラメタ Pi_文字列
RepStr(RTrim(RepStr(Pi_文字列,'□',' ')),' ','□')
使用例
uRTrim('あああ□いいい□□□') → 'あああ□いいい'
教えていただいた日本語関数の Zen() ですが、
「半角スペースは全角スペースに変換しません」という
仕様がありましたので今回は見送りました。
投票数:0
平均点:0.00
nkmt
投稿数: 1668

Tandaさん こんにちは。
Rtrimの存在は把握しておりましたが、
先頭スペースの除去をしてはいけない
という場面に遭った事もなく、Trim一辺倒でした。
ISHIJIMAさんの発想Goodですね。
Rtrimの存在は把握しておりましたが、
先頭スペースの除去をしてはいけない
という場面に遭った事もなく、Trim一辺倒でした。
ISHIJIMAさんの発想Goodですね。
投票数:0
平均点:0.00
Tanda
投稿数: 2151

nkmt さん、こんにちは。
そうですね、Rtrim() 関数は比較的新しい関数なので、古くから
Magic やっている人は使っていない人が多いみたいです。でも、
便利ですよ。
そうですね、Rtrim() 関数は比較的新しい関数なので、古くから
Magic やっている人は使っていない人が多いみたいです。でも、
便利ですよ。
投票数:0
平均点:0.00
nkmt
投稿数: 1668

Rtrimは殆ど使った事なかったので勉強になりました。
投票数:0
平均点:0.00
null
投稿数: 191

皆様、回答ありがとうございます。
変換データを見たところ今回対象の項目には
すべて全角が入っているので、ISHIJIMA さん案でいけそうです。
nkmt さん、KITTさん、ISHIJIMA さん、ありがとうございました。
変換データを見たところ今回対象の項目には
すべて全角が入っているので、ISHIJIMA さん案でいけそうです。
nkmt さん、KITTさん、ISHIJIMA さん、ありがとうございました。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827

すべて全角であればHAN関数で半角にしてRTRIMで右側の空白を除去してZEN関数で全角に戻す方法ではいかがでしょうか
投票数:1
平均点:10.00
KITT
投稿数: 9

項目:A
Aに100%含まれない文字:■
全角スペース:△
とすると、
RepStr(RepStr(Trim(RepStr(RepStr(A,' ','■'),'△',' ')),' ','△'),'■',' ')
でいかがでしょうか?
Aに100%含まれない文字:■
全角スペース:△
とすると、
RepStr(RepStr(Trim(RepStr(RepStr(A,' ','■'),'△',' ')),' ','△'),'■',' ')
でいかがでしょうか?
投票数:0
平均点:0.00
nkmt
投稿数: 1668

Nullさん
終端の全角空白の除去と書いてありますね。
私の提示ではNGですね。
失礼しました。
Len関数
Rep関数
Trim関数
ブロック Whileなどをかまして、終端の全角空白を
変換かける以外方法は無いかもしれませんね。
終端の全角空白の除去と書いてありますね。
私の提示ではNGですね。
失礼しました。
Len関数
Rep関数
Trim関数
ブロック Whileなどをかまして、終端の全角空白を
変換かける以外方法は無いかもしれませんね。
投票数:0
平均点:0.00
null
投稿数: 191

回答ありがとうございます。なるほど、RepStr ですか。
しかし、'取引先△○○部△△△' だと
'取引先○○部' となり、'取引先' の後の△も消えてしまいました。
他システムで作成したデータに全角の空白が入っているので
文字列の終端の空白を除去しながら、取り込みたいんですが
地道に後ろから全角の空白を除去していくしかないのかなぁ〜
しかし、'取引先△○○部△△△' だと
'取引先○○部' となり、'取引先' の後の△も消えてしまいました。
他システムで作成したデータに全角の空白が入っているので
文字列の終端の空白を除去しながら、取り込みたいんですが
地道に後ろから全角の空白を除去していくしかないのかなぁ〜
投票数:0
平均点:0.00
nkmt
投稿数: 1668

RepSTRって関数があったと思います。
REPSTR(TRIM(項目),'△','') △は全角スペース
でいかがでしょうか?
REPSTR(TRIM(項目),'△','') △は全角スペース
でいかがでしょうか?
投票数:0
平均点:0.00
null
投稿数: 191

すいません。uniPaaS でこんな機能があったか確認なのですが。
変数A = '取引先名1 '
のように文字列の終端に全角の空白が入っている時、
RTrim(変数A) としても '取引先名1' とはならず、
終端の全角の空白が消えませんでした。
終端の全角の空白を消す関数って無かったでしたっけ?
変数A = '取引先名1 '
のように文字列の終端に全角の空白が入っている時、
RTrim(変数A) としても '取引先名1' とはならず、
終端の全角の空白が消えませんでした。
終端の全角の空白を消す関数って無かったでしたっけ?
投票数:0
平均点:0.00