投稿者: ume

  • [言語比較]Instr : 検索する文字列の位置を調べる

    [言語比較]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 : 条件によって分岐

    [言語比較]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 : 配列のどこに値が含まれているか調べる

    [言語比較]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 : 区切記号で区切られた文字値の一部を拾う

    [言語比較]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 : 配列から重複を取り除く

    [言語比較]ArrayUnique : 配列から重複を取り除く

    Lotus Script 言語

    • ArrayUnique (1次元配列)
    • ArrayUnique (1次元配列, 比較方法)

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

    Lotus 式言語

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

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

  • [言語比較]StrCompare : 文字列を比較

    [言語比較]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

  • [言語比較]Format : 日時値を文字値へ変換

    [言語比較]Format : 日時値を文字値へ変換

    Lotus Script 言語

    • Format (日時)
    • Format (日時, 形式)

    日時の形式の例
    2020/11/29 = Format (Now, {Short Date})
     ※オペレーティングシステムで指定された日付形式になります
    14:51 = Format (Now, {Short Time})
     ※オペレーティングシステムで指定された時刻形式になります
    2020/11/29 14:51:06 = Format (Now, {yyyy/mm/dd hh:mm:ss})
    11/29 11:06 = Format (Now, {mm/dd mm:ss})
    02:51:06 PM = Format (Now, {hh:mm:ss AM/PM})
     ※月と時はどちらもmmで指定しますが、hhのあとのmmは時と解釈されます
     ※スラッシュ(/)とコロン(:)はオペレーティングシステムで指定された記号に変換されます
     ※AM/PMと記載するとhhは01~12になり、AMまたはPMが付加されます
     ※am/pmと小文字で記載すると、amまたはpmが付加されます
    2020/11/29 14:51:06 = Format (Now, {General Date})

    VbScript 言語

    • FormatDateTime (日時)
       ※色々とオプションを指定できます

    Lotus 式言語

    • @Text (日時);
    • @Text (日時; 形式);

    日時の形式の例
    2020/11/29 14:51:06 = @Text (@Now);
    2020/11/29 14:51:06 = @Text (@Now; {S2});
    2020/11/29 = @Text (@Now; {S0});
    14:51:06 = @Text (@Now; {S1});
    14:51 = @Text (@Now; {T1});

  • [言語比較]Format : 数値を文字値へ変換

    [言語比較]Format : 数値を文字値へ変換

    Lotus Script 言語

    • 文字値 = Format (数値)
    • 文字値 = Format (数値, 形式)

    数値の形式の例
    ¥123,457 = Format (123456.789, {Currency})
    123,456.79 = Format (123456.789, {Standard})
    12345678.90% = Format (123456.789, {Percent})
    1.23E+05 = Format (123456.789, {Scientific})
    98% = Format (0.98, {#0%})
    ¥123,456. = Format (123456, {$#,##0.})
     ※桁区切記号(,)、小数点(.)、通貨記号($)はオペレーティングシステムで指定された記号に変換されます

    VbScript 言語

    • FormatCurrency (数値)
    • FormatNumber (数値)
    • FormatPercent (数値)
       ※オプションを色々と指定できます

    Lotus 式言語

    • @Text (数値);
    • @Text (数値; 形式);

    数値の形式の例
    123456.789 = @Text (123456.789);
    123456.79 = @Text (123456.789, {F});
    1.23E+05 = @Text (123456.789, {S});
    \123456.79 = @Text (123456.789, {C});
    123,456.789 = @Text (123456.789, {,});
    123,45678.9 = @Text (123456.789, {%});

  • [言語比較]Split : 区切記号で文字列を配列へ変換

    [言語比較]Split : 区切記号で文字列を配列へ変換

    Lotus Script 言語

    • 配列 = Split (文字列) ‘ 区切記号は空白になります
    • 配列 = Split (文字列, 区切記号)
    • 配列 = Split (文字列, 区切記号, 戻り値の要素数)
    • 配列 = Split (文字列, 区切記号, 戻り値の要素数, 評価方法)

    戻り値の要素数
    -1 : 指定なし。すべての区切記号で分割
    0 : 戻り値に値なし。戻り値の要素数は無し
    1 : 分割なし。戻り値の要素数は-1と同じ
    2 : 最初の区切記号だけで2つに分割。戻り値の要素数は2つまで
    3 : 最初と2つ目の区切記号だけで3つに分割。戻り値の要素数は3つまで

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

    VbScript 言語

    • 配列 = Split (文字列) ‘ 区切記号は空白になります
    • 配列 = Split (文字列, 区切記号)
    • 配列 = Split (文字列, 区切記号, 戻り値の要素数)
    • 配列 = Split (文字列, 区切記号, 戻り値の要素数, 評価方法)

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

    Lotus 式言語

    • @Explode (文字列); ‘ 区切記号は空白・カンマ(,)・セミコロン(;)になります
    • @Explode (文字列, 区切記号);
    • @Explode (文字列, 区切記号, 戻り値にブランクを含めるか?);
    • @Explode (文字列, 区切記号, 改行を区切り記号として扱うか?);

    区切記号
    区切記号の長さは1文字です
    区切記号に「ab」を指定すると「a」と「b」が区切記号になります

    戻り値にブランクを含めるか?
    False : (初期値)文字列の最初や最後に区切記号がある、または区切記号が連続しているとき、戻り値にブランクが含まれないようにします
    True : 戻り値からブランを取り除きません

    改行を区切り記号として扱うか?
    True : (初期値)改行を区切記号に含めます
    False : 改行は区切記号ではありません

  • [言語比較]Print : メッセージを表示したりログへ記録

    [言語比較]Print : メッセージを表示したりログへ記録

    Lotus Script 言語

    • Print 値
       ※改行は Chr (10) を使用します。プラットフォーム固有の改行へ変換されます

    注意
    クライアントで実行しているときはステータスバーへ表示し、サーバーで実行しているときはログ(log.nsf)へ記録します
    ステータスバーへ表示されるメッセージをログへ記録するには notes.ini に LogStatusBar=1 を設定します
    ログをテキスト形式のコンソールログ(console.log)にも記録するには notes.ini に Console_Log_Enabled=1 を設定します

    VbScript 言語

    コマンドプロンプトから実行する CScript モードのとき
    WScript.Echo 値
    WScript.StdOut.WriteLine 値
    WScript.StdOut.Write 値 ‘ 改行が追加されません
     ※標準出力へ表示されます

    ダブルクリックで実行する WScript モードのとき
    WScript.Echo 値
     ※ダイアログボックスが表示されます

    Lotus 式言語

    @StatusBar (値);

    注意
    クライアントで実行しているときはステータスバーへ表示し、サーバーで実行しているときはログ(log.nsf)へ記録します
    ステータスバーへ表示されるメッセージをログへ記録するには notes.ini に LogStatusBar=1 を設定します
    ログをテキスト形式のコンソールログ(console.log)にも記録するには notes.ini に Console_Log_Enabled=1 を設定します

  • [CSS]クラス名に空白を含むとどういう意味?

     次のようにクラス名に空白が含まれるものがあります。
    これはクラス名 abc と def の2つを持つという意味になります。

    class="abc def"

     このクラスにスタイルを設定するときは次のように.(ピリオド)に続けたクラス名を2つ空白を入れずに併記します。
    クラス名 abc と def の両方を持つばあいの設定を指定しますという意味です。

    .abc.def {
       設定: 値;
    }

     ちなみに2つのクラス名の間に空白を挟むと、左側のクラス名のなかにある右側のクラス名の部分という意味になります。

  • [言語比較]Forall : 値の数だけ繰り返す

    [言語比較]Forall : 値の数だけ繰り返す

    Lotus Script 言語

    例:

    Forall 参照変数 In 複数値
     式
     Exit Forall ' Forall から抜け出します
    End Forall

    注意
    参照変数は Forall で使用する特別な変数で、Dim では宣言できません
    参照変数の値を書き換えると In に続く複数値が変更されます

    List : キーと値のペアで記憶する連想配列(辞書、ディクショナリー)を使います

    VbScript 言語

    For Each 変数名 In 複数値
     式
     Exit For ‘ For から抜け出します
    Next

  • [言語比較]StrLeft,StrLeftBack : 検索される文字値の検索値より左側を返す

    [言語比較]StrLeft,StrLeftBack : 検索される文字値の検索値より左側を返す

    Lotus Script 言語

    左側から検索される文字値を検索します
    文字値 = StrLeft (検索される文字値,検索値,比較方法,何番目の検索値?)
    文字値 = StrLeft (検索される文字値,検索値,比較方法)
    文字値 = StrLeft (検索される文字値,検索値)

    右側から検索される文字値を検索します
    文字値 = StrLeftBack (検索される文字値,検索値,比較方法,何番目の検索値?)
    文字値 = StrLeftBack (検索される文字値,検索値,比較方法)
    文字値 = StrLeftBack (検索される文字値,検索値)

    比較方法
    0 = 大文字小文字、全角半角を区別します
    1 = 大文字小文字を区別しません
    4 = 全角半角を区別しません
    5 = 大文字小文字、全角半角を区別しません

    戻り値には検索値を含みません
    例: {ABCAB} = Strleft ({ABCABC},{c},1,2)

    Lotus 式言語

    左側から検索される文字値を検索します
    文字値 = @Left (検索される文字値,検索値)

    右側から検索される文字値を検索します
    文字値 = @LeftBack (検索される文字値,検索値)

    戻り値には検索値を含みません
    例: {AB} = @Left ({ABCABC},{C})

    大文字小文字、全角半角を区別します
    例: {ABCab} = @Left ({ABCabc},{c})

  • [言語比較]Cdat,DateValue,DateNumber,TimeValue,TimeValue : 日時値へ変換

    [言語比較]Cdat,DateValue,DateNumber,TimeValue,TimeValue : 日時値へ変換

    Lotus Script 言語

    • 日時値 = Cdat (日時に変換できる値) ’ CVDate と別名で書くこともできます
    • 日付値 = DateValue (日付に変換できる文字値)
    • 日付値 = DateNumber (年, 月, 日) ’ DateSerial と別名で書くこともできます
    • 時刻値 = TimeValue (時刻に変換できる文字値)
    • 時刻値 = TimeNumber (時, 分, 秒) ’ TimeSerial と別名で書くこともできます

    例: 1899/12/30 00:00:00 = Cdat (0)

    VbScript 言語

    • 日時値 = Cdate (日時に変換できる値)
    • 日付値 = DateValue (日付に変換できる値)
    • 日付値 = DateSerial (年, 月, 日)
    • 時刻値 = TimeValue (時刻に変換できる値)
    • 時刻値 = TimeSerial (時, 分, 秒)

    Lotus 式言語

    日時値 = @TextToTime (日時に変換できる文字値);
    時刻値 = @ToTime (時刻に変換できる値);
    日時値 = @Time (日時に変換できる値);
    日時値 = @Time (年; 月; 日);
    日時値 = @Time (年; 月; 日; 時; 分; 秒);

  • [言語比較]Err,Erl,Error : エラーを処理

    [言語比較]Err,Erl,Error : エラーを処理

     実行時エラー(ランタイムエラー)が発生したときにどうするのか?というものです。

    Lotus Script 言語

    • Err : エラーが発生すると、エラー番号(数値)が入ります
    • Erl : エラーが発生すると、ソースコードの何行目という場所(数値)が入ります
    • Error : エラーが発生すると、エラーメッセージが入ります

    エラーが発生したときにどうするか定義します
    On Error Resume Next
    On Error Goto ラベル

    例:

    On Error Goto ラベル
     処理
     Exit Sub ' または Exit Function や Exit Property
    ラベル:
     エラー処理
     Resume Next ’ エラーの次の行へ戻る

     エラーが発生したときに『何もせず異常終了する』というときは次のようにします。この行より先はエラー対応をしません。

    On Error Goto 0

    似ている命令
    On 番号 Goto ラベル1, ラベル2, ... ’ 番号によって異なるラベルへ制御を移す命令です。番号がゼロのときは何もしません
    例 : On Err Goto ラベル ’ Err 変数の値(初期値は0)によってラベルへ制御を移します
    On 番号 Gosub ラベル, ・・・もあります。

    VbScript 言語

    • Err.Number : エラーが発生すると、エラー番号(数値)が入ります
    • Err.Source : エラーが発生した場所の名前が入ります
    • Err.Description : エラーが発生すると、エラーメッセージが入ります

    初期化
    Call Err.Clear ()
     ※ On Error や Exit でも Err が初期化されます

    On Error は Resume Next だけで、On Error Goto は使えません
    On Error Resume Next

    注意
    最初の On Error より前は Err オブジェクトが存在しません

    例:

    On Error Resume Next
    Call Err.Clear ()
     処理
     If 0 <> Err.Number Then
      エラー処理
      Call Err.Clear ()
     End If

    Lotus 式言語

    • @IsError (評価式) : 評価式がエラーを返すと @True になります
    • @IfError : 廃止されました。「何がエラーなのか」というところが @IsError と異なりました

    例 : @If (@IsError (評価式); エラー時の式; 正常時の式);

  • [言語比較]Do,While,Until : 繰り返す

    [言語比較]Do,While,Until : 繰り返す

    Lotus Script 言語,VbScript 言語

    Do ’ Exit や Goto がなれけば永遠に Do~Loop の中を繰り返します
     Exit Do ’ 直近の Do から抜けることができます
    Loop
    Do While 式 ’ 式が True のうちは Do~Loop の中を繰り返します
     Exit Do ’ 直近の Do から抜けることができます
    Loop
    Do Until 式 ’ 式が False のうちは Do~Loop の中を繰り返します
     Exit Do ’ 直近の Do から抜けることができます
    Loop
    Do
     Exit Do ’ 直近の Do から抜けることができます
    Loop While 式 ’ 式が True のうちは Do~Loop の中を繰り返します
    Do
     Exit Do ’ 直近の Do から抜けることができます
    Loop Until 式 ’ 式が False のうちは Do~Loop の中を繰り返します
    While 式 ’ 式が True のうちは While~Wend の中を繰り返します
     ’ Exit を使えません
    Wend

    Lotus 式言語

    • @While (条件式; 式1; ...; 式最大254); ※条件式が @True のあいだ式を繰り返します
    • @DoWhile (式1; ...; 式最大254; 条件式); ※条件式が @True のあいだ式を繰り返します

    注意
    @Do (式1; ...; 式最大254);
     ※名前は似ていますが @Do は繰り返しません

  • [言語比較]Chr (10) : 改行記号

    [言語比較]Chr (10) : 改行記号

    Lotus Script 言語

    • Chr (10) : プラットフォーム固有の改行記号に自動変換されます

    注意
    ノーツ/ドミノ サーバーに配置したアプリは、再コンパイルなしで複数のプラットフォームで動作します

    VbScript 言語

    • vbCrLf : Windows プラットフォームの改行記号です
    • vbCr : Mac プラットフォームの改行記号です
    • vbLf : UNIX や Linux プラットフォームの改行記号です

    Lotus 式言語

    • @Char (10) : 改行記号として扱われます
    • @Char (13) : @Prompt 内で改行記号として扱われます
    • @NewLine : 改行記号ですが、使用できないところがいくつかあります
  • [言語比較]ByVal : コピーした値を受け取る

    [言語比較]ByVal : コピーした値を受け取る

    Lotus Script 言語

    • 値のありかを受け取る ByRef(参照渡し)が規定ですが、わざわざ ByRef と明記するとエラーになります
    • ByVal と記載するとコピーされた値を受け取ることができます(値渡し)

    VbScript 言語

    • 値のありかを受け取る(参照渡し)が規定です。わざわざ ByRef と明記することができます
    • ByVal と記載するとコピーされた値を受け取ることができます(値渡し)
  • [言語比較]変数の初期値(既定値)

    [言語比較]変数の初期値(既定値)

    Java, C#, Python

    初期化されていない変数を使うとエラーになります

    Lotus Script

    • 数値型: 0
    • 文字値型: ブランク
    • Boolean型: False
    • オブジェクト型: Nothing
    • Variant型: Empty
    • List型: 初期化されません。アクセスする前に Redim で初期化します

    注意
    Variant型変数を Empty に戻すには、未使用の Variant型変数を利用します
    例: Variant型変数 = 宣言したまま使用していない Variant型変数

    VbScript

    • Variant型: Empty

    注意
    Variant型変数を Empty に戻すには、Empty を使用します
    例: Variant型変数 = Empty

    Lotus 式言語

    • Variant型: Empty
  • [言語比較]””{}|| : 文字列定数をあらわす記号

    [言語比較]””{}|| : 文字列定数をあらわす記号

     文字列を囲う記号を整理してみましょう。

    Java

    • ”文字列値”

    C#

    • @”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    Python

    • r”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    PHP

    • ‘文字列値’
    • ”文字列値” : $から始まる変数を設定できます

    Lotus Script 言語

    • ”文字列値”
    • {文字列値}
    • |文字列値|

    VbScript 言語

    • ”文字列値”

    Lotus 式言語

    • ”文字列値”
    • {文字列値}

    {}(ちゅうかっこ)は””(ダブルコーテーション)に自動変換されます

  • [言語比較]Call : 関数を呼ぶ

    [言語比較]Call : 関数を呼ぶ

    Lotus Script 言語

    () は省略できることが多いです
    Call を省略するときは () も省略します
    Call だけ省略し () を付けると、意味が変わります
    次のとおり色々な書き方ができます

    受け渡し値がないとき

    • Call 関数名 ()
    • Call 関数名
    • 戻り値 = 関数名 ()
    • 戻り値 = 関数名
    • 関数名

    受け渡し値があるとき(関数側の ByVal/ByRef 設定どおり)

    • Call 関数名 (受け渡し値)
    • Call 関数名 受け渡し値
    • 戻り値 = 関数名 (受け渡し値)
    • 関数名 受け渡し値

    これはエラーになります

    • 戻り値 = 関数名 受け渡し値

    受け渡し値があるとき(常に ByVal を強制)

    • 関数名 (受け渡し値) ’ Call を省略して () を付けます

    VbScript 言語

    Call を付けるときは () も付けます
    Call を省略するときは () も省略します
    Call だけ省略し () を付けると、意味が変わります
    次のとおり色々な書き方ができます

    受け渡し値がないとき

    • Call 関数名 ()
    • 戻り値 = 関数名 ()
    • 関数名

    受け渡し値があるとき(関数側の ByVal/ByRef 設定どおり)

    • 戻り値 = 関数名 (受け渡し値)
    • Call 関数名 (受け渡し値)
    • 関数名 受け渡し値

    受け渡し値があるとき(常に ByVal を強制)

    • 関数名 (受け渡し値) ’ Call を省略して () を付けます

    クラスの値を受け渡すと動作が変わります(アクセス権がどうの)

    クラス名.パラメータ = 値
    関数名 (クラス名.パラメータ) ’ クラス名.パラメータの値は変化しません
  • [言語比較]New : クラスからオブジェクトをつくる

    [言語比較]New : クラスからオブジェクトをつくる

    New : クラスからオブジェクトをつくります

    Lotus Script 言語

    • Set 変数 = New クラス名 ()
    • Set 変数 = New クラス名 (値)
    • Set 変数 = New クラス名
       ※最初に実行される New 関数は値を受け取ることができます
       ※New クラス名へ値を渡さないときは括弧を省略できます

    VbScript 言語

    • Set 変数 = New クラス名
       ※最初に実行される Class_Initialize 関数は値を受け取ることができません
       ※クラス名のうしろに括弧をつけるとエラーになります

  • [言語比較]Const : 変更されない値に名前を設定

    [言語比較]Const : 変更されない値に名前を設定

    C#

    Const 名前 = 値;

    Lotus Script 言語, VBScript 言語

    Const 名前 = 値

    注意
    設定できる値部分には、計算式や変数を書くことができません
    Const に限りませんが、標準で Lotus Script は Private になり、VBScript は Public になります

  • [言語比較]List,Listtag : キーと値のペアで記憶する連想配列(辞書、ディクショナリー)

    [言語比較]List,Listtag : キーと値のペアで記憶する連想配列(辞書、ディクショナリー)

    Lotus Script 言語

    • 宣言 : Dim 変数名 List As 型
    • 辞書? : True または False = IsList (変数名)
    • キーを追加 : 変数名 (キー) = 値
    • 既にキーが存在する? : True または False = IsElement (変数名 (キー))
    • 値を取り出す : 値 = 変数名 (キー)
    • すべて取り出す :
    Forall 参照変数 In 変数
     キー = ListTag (参照変数)
     値 = 参照変数
    End Forall
     ※参照変数は Forall で有効な特別な変数で Dim で宣言しません
     ※参照変数を更新すると In に続く変数の値が更新されます

    Forall : 値の数だけ繰り返します

    • キーを削除 : Erase 変数名 (キー)
    • キーをすべて削除 : Erase 変数名
       ※キーは文字値になります
       ※一般的に List は配列よりも多くの値を保存できます

    VbScript 言語

    • 言語として連想配列の機能がありません
    • Set 変数名 = CreateObject (“Scripting.Dictionary”) として、オブジェクトで連想配列を使います

    Lotus 式言語

    連想配列の機能がありません

  • [言語比較]Class : クラスをつくる

    [言語比較]Class : クラスをつくる

     Lotus Scriptのクラスは、VBScriptと異なっているところが多いです。

    Lotus Script 言語

    Class クラス名 As 元クラス ’別のクラスから引き継ぐことができます

     ’最初に実行されます
     Sub New (変数名 As 型).元クラス (変数名 As 型) ’値を受け取ることができます
     End Sub

     ’最後に実行されます
     Sub Delete ()
     End Sub

     Public Sub 戻り値がない関数名 (変数名 As 型)
     End Sub

     Public Function 戻り値がある関数名 (変数名 As 型) As 型
      Me.戻り値がある関数名 = 戻り値 ’値を返します
     End Function

     Public Property Set プロパティ名 As 型
      変数名 = Me.プロパティ名 ’値を受け取ります
     End Property

     Public Property Get プロパティ名 As 型
      Me.プロパティ名 = 戻り値 ’値を返します
     End Property

    End Class

     何も指定しないと Private、ByRef になります。
     現在のクラスのなかで現在のクラスで定義された関数・プロパティ・変数を使うには、名前の先頭に Me. をつければOKです

    VbScript 言語

    Class クラス名 ’独立したクラスとして作成します

     ’最初に実行されます
     Sub Class_Initialize () ’値を受け取れません
     End Sub

     ’最後に実行されます
     Sub Class_Terminate ()
     End Sub

     Sub 戻り値がない関数名 (変数名)
     End Sub

     Function 戻り値がある関数名 (変数名)
      戻り値がある関数名 = 戻り値 ’値を返します
     End Function

     Public Property Set プロパティ名 ’Set はオブジェクトを受け取ります
      Set 変数名 = プロパティ名 ’値を受け取ります
     End Property

     Public Property Let プロパティ名 ’Let はオブジェクト以外を受け取ります
      変数名 = プロパティ名 ’値を受け取ります
     End Property

     Public Property Get プロパティ名
      プロパティ名 = 戻り値 ’値を返します
     End Property

    End Class

     なにも指定しないと Public、ByRef になります。
     現在のクラスで定義されたプロパティをつかうときに、名前の先頭に Me. をつけるときがあります

  • [言語比較]& : 文字列連結演算子

    [言語比較]& : 文字列連結演算子

    Java

    • 文字値 = 文字値 + 文字値;

    C#

    • 文字値 = 文字値 + 文字値;
    • 文字値 += 文字値;
    • 文字値 = $”文字値{変数名}文字値”;

    Python

    • 文字値 = 文字値 + 文字値
    • 文字値 += 文字値

    Lotus Script 言語

    • 文字値 = 値 & 値
    • 文字値 = 文字値 + 文字値

    &(アンド)は異なる意味でも使われますので、半角空白を使わずに詰めて書くとコンパライラに誤解されることがあります

    注意
    & は両辺が null のときに null を返します
    + は片方が null のときに null を返します
    + は数値とあわせて使うと、数値に変換できる文字値を数値へ変換して加算することがあります

    演算子ではないところで使用される&記号
    変数名や値の末尾に&を付けると、Long型ですよという意味になります(接尾辞)
    &B、&O、&H は、それぞれ2進数、8進数、16進数ですよという意味になります(接頭辞)
    演算子として&記号を書くときは、コンピューターが困惑しないように、&の前後に空白をはさむとよいでしょう

    VbScript 言語

    • 文字値 = 値 & 値

    注意
    & は両辺が null のときに null を返します

    演算子ではないところで使用される&記号
    &O、&H は、それぞれ8進数、16進数ですよという意味になります
    演算子として&記号を書くときは、コンピューターが困惑しないように、&の後に空白をはさむとよいでしょう

    Lotus 式言語

    • 文字値 = 文字値 + 文字値
  • [言語比較]ArrayAppend : 値をまとめて新しい配列へ

    [言語比較]ArrayAppend : 値をまとめて新しい配列へ

    Lotus Script 言語

    • 動的配列 = ArrayAppend (配列, 単数値または配列)

    エラーになる例
    ArrayAppend (単数値, 単数値または配列)

    動的配列とは
    Lotus Script の配列は2種類あります
    ひとつは Redim で値の数を変更できる動的配列、もうひとつは値の数を変えられない静的配列です

    既存の配列に値を追加する方法
    動的配列に入る値の数を変更するには Redim Preserve 配列名 (上限値) を使用します
    初期値では下限値が 0 となっているため、上限値を 1 にすると配列の値の数は (0) と (1) の2つになります
    Preserve キーワードを忘れると、配列の値が初期化されます
    新しく増やした部分に値を入れるには 配列名 (Ubound (配列名)) = 値 とします

    VbScript 言語

    Lotus Script 言語の既存の配列に値を追加する方法でおこないます

    Lotus 式言語

    • 配列 = 単数値または配列 : 単数値または配列
  • [言語比較]Rem : コメント

    [言語比較]Rem : コメント

    Lotus Script

    ' 行末までコメント
    
    Rem 行末までコメント
    
    %REM
    複数行コメント
     注意 : %REM と %END REM は行の先頭から記載します
    %END REM

    VbScript

    ' 行末までコメント
    
    Rem 行末までコメント

    Lotus 式言語

    REM {括弧で囲んだ範囲がコメント};
    
    REM "括弧で囲んだ範囲がコメント";
  • [言語比較]Boolean,True,False : 論理型

    [言語比較]Boolean,True,False : 論理型

    Lotus Script 言語

    • False は 数値の 0 と表すこともできます
    • True は 数値の -1 と表すこともできます
    • True と False を反転させるには Not を使います
    • Boolean型は False に初期化されます

    注意
    論理型を数値に置き換えると紛らわしいです
    True や False を数値に置き換えることはできますが控えたほうが無難です

    等しい

    等しくない
    <>, ><

    VbScript 言語

    • False は 数値の 0 と表すこともできます
    • True は 数値の -1 と表すこともできます
    • True と False を反転させるには Not を使います

    等しい

    等しくない
    <>

    Lotus 式言語

    • @False は 数値の 0 と表すこともできます
    • @True は 数値の 1 と表すこともできます (Lotus Script 言語と異なります)
    • @True と @False を反転させるには !(びっくりマーク) を使います

    反転(Not, !, ~しない, ~ではない)
    重ねて使うと、否定の否定って何!?って、何だかわからなくなりそうです

    等しい

    等しくない
    <>, ><, !=, =!

  • [言語比較]Asc,Uni,String,Chr,UChr,UString : 一文字を文字コードへ、またはその反対へ

    [言語比較]Asc,Uni,String,Chr,UChr,UString : 一文字を文字コードへ、またはその反対へ

    Lotus Script 言語

    • 数値 = Asc (プラットフォーム固有の文字値)
    • 数値 = Uni (ユニコード文字値)
    • プラットフォーム固有の一文字値 = Chr (数値)
    • プラットフォーム固有の一文字値 = String (1, 数値)
    • ユニコードの一文字値 = UChr (数値)
    • ユニコードの一文字値 = UString (1, 数値)
      Asc,Chr で扱う数値の範囲は 0 ~ 255
      String は一バイト文字または二バイト文字のコードのどちらでも使用できます
      Uni,UChr,UString で扱う数値の範囲は 0 ~ 65,535

    エラーになる例
    Asc (長さがゼロの文字値)
    Asc (Null値)
    UString (1, -1)
    UString (1, 65536)

    VbScript 言語

    • 数値 = Asc (文字値)
    • 一文字値 = Chr (数値)

    Lotus 式言語

    • 文字値 = @Char (数値)
    • 文字の複数値 = @Char (数の複数値)
    • 改行 = @Char (10)
    • タブ = @Char (9)
      数値の範囲は 0 ~ 255

    注意
    @Ascii は Asc とは異なります
    @Ascii はロータスマルチバイト文字セット (LMBCS) を ASCII文字にする関数です

  • [言語比較]Abs : 数値を符号のない絶対値へ

    [言語比較]Abs : 数値を符号のない絶対値へ

    Lotus Script 言語, VbScript 言語

    • 数値 = Abs (数値)
    • Null値 = Abs (Null値)

    エラーになる例
    Abs (複数値)
    Abs (文字値)

    Lotus 式言語

    • 数値 = @Abs (数値)
    • 数の複数値 = @Abs (数の複数値)
  • [C API]文書が開かれたり保存されたりするときに呼び出されるDLL

    [C API]文書が開かれたり保存されたりするときに呼び出されるDLL

     notes.iniに『NSF_HOOKS=①DLL名』と指定すると、文書が開かれたり保存されたりしたときにDLLが呼び出されるようになります。
     呼び出されるDLLファイル名は、ノーツプログラムディレクトリに配置される多くの*.exeファイルと同じように先頭が『n』から始まるようにします。
     notes.iniに記載する①DLL名はDLLファイル名の先頭の『n』と拡張子『.DLL』を取り除いたものになります。

     もし『NSF_HOOKS=①DLL名』の記載があって、該当のDLLファイルが存在しないときどうなるでしょうか?
    試したところ…設定が無視されるだけで、エラーが発生したりサーバーがクラッシュすることはありませんでした。

     NSF_HOOKSから呼び出されるDLLのサンプルはC API Toolkit for Notes/Dominoのsample/admin/trackerにあります。

    https://note.com/notesdomino/n/nbb372fc27daa

    https://note.com/notesdomino/n/n6e674c879c5d

  • [Python]name ‘pip’ is not defined

     Python(パイソン)でpip install ○○』と入力したとき、pipって何?というエラーがでました。
    なぜでしょうか?

    name 'pip' is not defined

     昔インストールした古いパスが残っていることがあります。
    Windowsのスタート画面で『環境変数を編集』と検索し、検索結果を開きます。
    画面上部にユーザー環境変数が、画面下部にシステム環境変数が表示されます。どちらにも『Path』があります。
     Pathに設定された値を確認します。『Python』を含むものを見つけましょう。そのパスが示すフォルダはあるでしょうか?なければ削除しましょう。これで治ったのではないかとおもいます。

  • [PHP]お問い合わせフォームをつくりました

     HTMLとPHPをつかって、お問い合わせ内容をメールで送信するものをつくりました。

    HTML

    <form action="PHPファイル名.php" method="post">
    <p>ご返信先メールアドレス<br>
    <input name="email" type="email" size="40"></p>
    <br>
    <p>ご用件を教えてください<br>
    <textarea name="body" required cols="40" rows="6" placeholder="ウェブサイト作成のご依頼ほか"></textarea></p>
    <p><input type="submit" value="送信"></p>
    </form>

    PHP

    <!doctype html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <main>
    <?php
    $email = $_POST['email'];
    $body = $_POST['body'];
    mb_language("Japanese");
    mb_internal_encoding("UTF-8");
    $headers = "From: $email";
    mb_send_mail($email, "お問い合わせ", $body, $headers);
    print ("お問い合わせありがとうございます");
    ?>
    </body>
    </html>

  • [PHP]if-else分岐

    IF文での分岐は次のようになります。

    if(条件) {
    式;
    }

    if(条件) {
    式;
    } elseif {
    式;
    } else {
    式;
    }

  • [PHP]ブックマークから開いたときの前のページ

     前のページのURLを調べるときは、PHPで『$_SERVER[‘HTTP_REFERER’]』を使います。
    直接URLを開いたり、ブックマークから開いたりしたとき、『$_SERVER[‘HTTP_REFERER’]』はどんなURLになるでしょうか。
    試してみたところ空っぽでした。

     ちなみに<a href=””></a>と、hrefにブランクを渡すと現在のURLへのリンクになっていました。

  • [PHP]文字列を囲う記号は何ですか

     『”(ダブルコーテーション)』で囲まれた文字列に『$(ドルマーク)』を含むと、$より後ろの文字は変数名として扱われます。
    変数名を含まない文字列を書くときは、文字列を『’(シングルコーテーション)』で囲むことができます。

     記号を普通の文字だよっと指示するときは、『\(エンマーク)』を付けます。
    例えば。。。
    $(ドルマーク) → \$
    “(ダブルコーテーション) → \”
    ‘(シングルコーテーション) → \’
    \(エンマーク) → \
    ((開きかっこ) → (
    )(閉じかっこ) → )
    (改行) →\r\n

  • [HTML]改行をそのまま表示します

    改行を含んだ値を、そのまま表示するには次のようにします。

    <pre>値<pre>

  • [CSS]いちぶを隠します

     CSSを使用してHTMLの一部分をかくすことができます。

    display: none;

     状況にあわせて内容を表示するのに使えるかもしれませんね。

  • [DNS]メールサーバをDNSへ登録します

     インターネットメールが着信するように、メールサーバをDNSに登録します。

    (空欄) MX メールサーバ名 10

     ※最後の10は優先順位です。メールサーバがひとつしかないときは重要ではありません。