当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2011年10月28日金曜日

配列の中身をトリミングしてみる

先週はサボってごめんなさい。ご存じの方も多いと思いますが(ホントか?)、筆者は先週、大きな買い物をしたのです。
それに丸々一日を費やしてしまったので、更新出来ませんでした。

xPagesネタは、記事を書きながら、DBを作っているので、結構体力を使うのです。
なので、みなさんどんどん、ノーツDBをxPages化してくださいね。

さて、今日はxPagesネタは一休み(終わらないですよ)。
久しぶりに、Lotus Scriptネタです。

たまには、見たいですよね。Lotus Scriptネタ。

ということで見たい方は、
にほんブログ村 IT技術ブログへ
をクリックしましょう。



今日は、配列の中身をトリミングしてみるというものです。
トリミングは、皆さん知ってますよね?そうです。余分なスペース(空白)を削除するというものです。

文字列変数の中身から余分なスペースを削除するには、LTrimやRtrim、Trim関数を使いますね。
LTrim関数は文字列のうち、一番左側にある余分なスペースを、RTrimは文字列のうち、一番右側にある余分なスペースを、Trim関数は文字列の一番左と一番右の両方の余分なスペースを削除してくれます。

配列の場合、各要素を取り出して、Trim関数で余分なスペースを削除して、また配列に戻す。
と言うことを行います。

では、いつものようにサンプルを見てみましょう。

Sub Click(Source As Button)
    On Error Goto ErrProc
   
    Dim data1     As Variant
    Dim data2     As Variant
    Dim dummyd(0) As String
   
    data1 = Split( "abc, def, hij", "," )
   
    '配列の各要素を取り出して、それぞれトリミングを行う
    Forall x In data1
        If Isempty(data2) Then
            dummyd(0) = Trim(x)
            data2 = dummyd
        Else
            dummyd(0) = Trim(x)
            data2 = Arrayappend( data2, dummyd )
        End If
    End Forall
   
    '置換した配列の中身を確認する
    Forall z In data2
        Msgbox "【" + z + "】"
    End Forall
   
    Exit Sub
   
Errproc:
    Msgbox _
    Cstr(Erl) & Chr$(10) & _
    Cstr(Err) & Chr$(10) & _
    Error, _
    0, "エラー"
   
    Exit Sub
End Sub


・・・大変ですね。



ここで、記事を見るのを止めてしまった方、もったいない。
Lotus Scriptはそんなに不便ではありません。
ちゃんとあります。配列の各要素をトリミングしてくれる心強い関数が!

その名も「FullTrim」関数です!
では、上記のサンプルをFullTrim関数に置き換えたものを見てみましょう。

Sub Click(Source As Button)
    On Error Goto ErrProc
   
    Dim data1     As Variant
    Dim data2     As Variant
   
    data1 = Split( "abc, def, hij", "," )
    '配列の要素をすべてトリミングする
    data2 = Fulltrim( data1 )
   
    '置換した配列の中身を確認する
    Forall z In data2
        Msgbox "【" + z + "】"
    End Forall
   
    Exit Sub
   
Errproc:
    Msgbox _
    Cstr(Erl) & Chr$(10) & _
    Cstr(Err) & Chr$(10) & _
    Error, _
    0, "エラー"
   
    Exit Sub
End Sub


どうです?簡単ですね。
ということで、配列の中身をトリミングする場合は、FullTrim関数を使いましょう。

これは、ノーツ文書の中で、複数値に余分なスペースがあって、それを削除したいときに使えますね。
思い当たる方は早速試してみてください。



【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: