fc2ブログ

@Left/@Right のEmulate

実際に必要になってから書いても大したコードでも無いのですが、LotusScriptって文字列処理がイマイチなので、@Leftや@Rightの処理がLotusScriptで使いたくなることがあります。
 Evaluateを使えばいいじゃん?て声もありそうですが僕は以下のようなコードを使います。

これは実は僕が考えたコードでなくて、R5時代にSetup.nsfに含まれていたコードを自分のローカルに取っておいたものです。なのでブログのネタにしやすいな、て思ったのです。確かNotes/Domino Magazineでもこの話は取り上げられていました。
テンプレートのコードはなぜかRightStrに初歩的なバグがあったのですが、そこは直してあるので使えると思います。


Function LeftStr(sString As String, sKey As String) As String
%REM
この関数は@left 関数のように動作します。
キーが見つからなかったら "" を返します。
%END REM

Dim nPos As Integer
nPos = Instr(sString,sKey)
If (nPos > 0) Then
LeftStr = Left$(sString,npos-1)
Else
LeftStr = ""
End If
End Function

Function RightStr(sString As String, sKey As String) As String
%REM
この関数は @Right のように動作します。
キーにある文字が見つからなかったら""を返します。
%END REM

Dim nPos As Integer
nPos = Instr(sString, sKey)
If (nPos = 0) Then
RightStr = ""
Else
RightStr = Right$(sString, Len(sString)-nPos-Len(sKey)+1)
End If
End Function


コメント

非公開コメント