タグ: Lotus Script

  • [言語比較]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 (数の複数値)