ノーツ/ドミノの言語

2020-11-04に作成

 ノーツ/ドミノ(Notes/ Domino)で使用する主要な言語にはロータススクリプト(Lotus Script)とロータス式言語(Lotus 式言語、アットマーク関数)があります。ロータススクリプトは VBScript に似たところがある言語です。
 Windows上でノーツ/ドミノ サーバーを動かしていると、管理用のプログラムを VBScript や C# で書くことがあります。
 ここではこれらの言語をとりあげます。

所有者限定モードのためこのボードには投稿できません ボードとは?

Instr : 検索する文字列の位置を調べます

Lotus Script 言語

  • Instr (検索する文字列, 検索される文字列)
  • Instr (検索開始位置, 検索する文字列, 検索される文字列)
  • Instr (検索開始位置, 検索する文字列, 検索される文字列, 比較方法)

検索開始位置を省略したときは 1 とみなされます
数値を設定する検索開始位置や比較方法にNULL値を設定するとエラーになります

戻り値
1~ : 検索する文字の位置
0 : 見つからなかった
検索開始位置(初期値は1) : 検索される文字列が空
NULL : NULL値が設定された

評価方法
0 : 大文字小文字、全角半角を区別します
1 : 大文字小文字を区別しません
4 : 全角半角を区別しません
5 : 大文字小文字、全角半角を区別しません

VbScript 言語

  • Instr (検索する文字列, 検索される文字列)
  • Instr (検索開始位置, 検索する文字列, 検索される文字列)
  • Instr (検索開始位置, 検索する文字列, 検索される文字列, 比較方法)

検索開始位置を省略したときは 1 とみなされます
数値を設定する検索開始位置や比較方法にNULL値を設定するとエラーになります

戻り値
1~ : 検索する文字の位置
0 : 見つからなかった
検索開始位置(初期値は1) : 検索される文字列が空
NULL : NULL値が設定された

評価方法
0 : バイナリーモード
1 : テキストモード(大文字小文字を区別しません)

Lotus 式言語
  • @True/@False = @Contains (検索される文字列; 検索する文字列);
     ※空の文字列を渡すと@Trueが戻ります
  • @True/@False = @Begins (検索される文字列; 検索する文字列);
     ※検索される文字列の先頭に見つかると@Trueが戻ります
  • @True/@False = @Ends (検索される文字列; 検索する文字列);
     ※検索される文字列の末尾に見つかると@Trueが戻ります

 ※いずれも大文字小文字を区別します

If : 条件によって分岐します

Lotus Script 言語
If 条件式 Then
 式
Elseif 条件式 Then
 式
Else
 式
End If

 ※If ~ Elseif ~ Elseif と繰り返せます
 ※Elseif Else ともに使わないことができます

If 条件式 Goto ラベル
ラベル:
式
If 条件式 Goto ラベル Else 式
ラベル:
式

 ※If ~ Goto ~ Else ~ は改行せずに書きます

VbScript 言語
If 条件式 Then
 式
Elseif 条件式 Then
 式
Else
 式
End If

 ※If ~ Elseif ~ Elseif と繰り返せます
 ※Elseif Else ともに使わないことができます

Lotus 式言語
  • @If (条件式; 式; 式);
     『条件式; 式; 』は最大99回繰り返せます
  • @V2If (条件式; 式; 式);
     ※@V2If は旧バージョン用です、上位互換がある @If に書き換えることができます

ArrayGetIndex : 配列に値が含まれているか?その位置は?

Lotus Script 言語
  • 見つかった検索値の位置 = ArrayGetIndex (配列, 検索値)
  • 見つかった検索値の位置 = ArrayGetIndex (配列, 検索値, 比較方法)
     ※文字値へ変換してから比較します

比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
 ※規定は 0 ですが、規定を Option Compare で変更することができます

Lotus 式言語
  • 見つかった検索値の位置 = @Member (検索値; 配列); ' 見つからなかったときは 0 を返します
  • True/False = @IsMember (検索値(文字値); 配列); ' 見つかったとき @True を返します
  • True/False = @IsMember (検索値(配列値); 配列); ' 検索値がすべて見つかったとき @True を返します
  • True/False = @IsNotMember (検索値(文字値); 配列); ' 見つかったとき @False を返します
  • True/False = @IsNotMember (検索値(配列値); 配列); ' 検索値のいずれかが見つかったとき @False を返します
     ※@IsNotMember は !@IsMember と一致しません

StrToken : 区切記号で区切られた文字値の一部を拾いますノーツ/ドミノ

Lotus Script 言語
  • StrToken (文字値, 区切記号, 場所)
  • StrToken (文字値, 区切記号, 場所, 比較方法)

場所
0 のとき 1 とみなされます
0 より大きいとき、左から何番目か?
0 より小さいとき、右から何番目か?

比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
 ※規定は 0 ですが、規定を Option Compare で変更することができます


えおか = StrToken ({あいう,えおか,きくけ}, {,}, 2)

Lotus 式言語
  • @Word (文字値; 区切記号; 場所);

場所
0 のとき 1 とみなされます
0 より大きいとき、左から何番目か?
0 より小さいとき、右から何番目か?

ArrayUnique : 配列から重複を取り除きます

Lotus Script 言語
  • ArrayUnique (1次元配列)
  • ArrayUnique (1次元配列, 比較方法)

比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
 ※規定は 0 ですが、規定を Option Compare で変更することができます
 ※配列が文字列のときに比較方法を選択できます

Lotus 式言語
  • @Unique (配列)
     ※パラメータなしの @Unique は、呼び出すたびに異なる文字列を返します

比較方法
 ※大文字小文字を区別します

StrCompare : 文字列を比較します

Lotus Script 言語
  • 数値 = StrCompare (文字列1, 文字列2) ' 別名として StrComp があります
  • 数値 = StrCompare (文字列1, 文字列2, 比較方法)

比較方法
0 = 大文字小文字、全角半角を区別します
1 = 大文字小文字を区別しません
2 = プラットフォームの並び順で比較
4 = 全角半角を区別しません
5 = 大文字小文字、全角半角を区別しません
 ※規定は 0 ですが、規定を Option Compare で変更することができます

戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2
Null値 = 文字列1または文字列2がNull値

VBScript 言語
  • 数値 = StrComp (文字列1, 文字列2)
  • 数値 = StrComp (文字列1, 文字列2, 比較方法)

比較方法
0 = バイナリモードで比較します
1 = テキストモードで比較します
 ※規定は 0 です

戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2
Null値 = 文字列1または文字列2がNull値

Lotus 式言語
  • 数値 = @Compare (文字列1, 文字列2)
  • 数値 = @Compare (文字列1, 文字列2, 比較方法)
     ※文字列に複数値を設定できます
     ※文字列1と文字列2の値の数をそろえてから比較します

比較方法
[CASESENSITIVE]/[CASEINSENSITIVE] = 大文字小文字を区別/区別しないで比較します
[ACCENTSENSITIVE]/[ACCENTINSENSITIVE] = アクセントを区別/区別しないで比較します
[PITCHSENSITIVE]/[PITCHINSENSITIVE] = 全角半角を区別/区別しないで比較します
 ※規定は [CASESENSITIVE] : [ACCENTSENSITIVE] : [PITCHSENSITIVE] です
 ※Unicodeスタンダードソートを設定しているときは使えない比較方法があります

戻り値
-1 = 文字列1 < 文字列2
0 = 文字列1 = 文字列2
1 = 文字列1 > 文字列2