組み込み関数


 組み込み関数は ViViScript があらかじめ用意している関数で、宣言を行わずに使用することができます。

■ beep(freq, duration)

 ビープ音を鳴らします.freq は周波数,duration は長さ(単位はミリ秒)です.

■ buildNumber()

 ViViのビルド番号を返します。

サンプルプログラム:

    console.writeln("ビルド番号:" + buildNumber());

■ clock()

 ViViが起動してからの時間をミリ秒単位で返します。

サンプルプログラム:

    var start = clock();                //  処理開始時間を保存
    .....                               //  何らかの処理
    var duration = clock() - start;     //  処理に要した時間(ミリ秒)

■ currentTime()

 現在時刻(オブジェクトが生成された時刻)を保持する日付・時刻オブジェクトを返します。

サンプルプログラム:

    var now = currentTime();
    console.writeln( now.strftime("%y/%m/%d %H:%M:%S") );
    console.writeln( now.getYear() );
    console.writeln( now.getMonth() );
    console.writeln( now.getDay() );
    console.writeln( now.getHour() );
    console.writeln( now.getMinute() );
    console.writeln( now.getSecond() );

実行結果:

    97/07/07 23:21:35
    1997
    7
    7
    23
    21
    35

■ format( formatString, ... )

 sprintf と同様に formatString にしたがって文字列をフォーマットし、文字列を値として返します。
注意:引数は formatString を含めて11個までが有効で、それ以上は無視されます。

サンプルプログラム:

    for(var i = 1; i < 1000; i += i)
        console.writeln("[" + format("%8d", i) + "]");

実行結果:

    [       1]
    [       2]
    [       4]
    [       8]
    [      16]
    [      32]
    [      64]
    [     128]
    [     256]
    [     512]

■ getOsVersion()

 OSのバージョン番号情報などを含むオブジェクトを返します

サンプルプログラム:

    var ver = getOsVersion();
    var prop;
    for(prop in ver)
        console.writeln(prop + " = " + ver[prop]);

■ getOpenDocPath()

 現在オープンしているドキュメントのフルパスリストを取得します

サンプルプログラム:

    var list = getOpenDocPath();
    var cnt = list.getCount();
    for(var i=0; i<cnt; ++i)
        console.writeln(list[i]);

■ isBoxSelectMode()

 BOX選択モードかどうかを判定します。

■ makePath( splitted_path )

■ makePath( drive, dir, fname, ext )

 分解されたパスからフルパス文字列を構成します。

サンプルプログラム:

    var sp = splitPath("c:/vc/vivi/vi.cpp");   //  パスを分解
    sp.ext = "h";                              //  拡張子を変更
    var newPath = makePath(sp);

■ messageBox( message, type )

 メッセージボックスを表示します。
 type はメッセージボックスのスタイルを指定します。省略した場合は、OKボタンのみを持つダイアログを表示します。
    0   OKボタンのみ
    1   OK、キャンセルボタン
    3   Yes、NO、キャンセルボタン
    4   Yes、NOボタン

 それぞれのボタンが押された場合、以下の値を返します。
    1   OK
    2   キャンセル
    6   Yes
    7   NO

サンプルプログラム:

    var MB_OK = 0, MB_OKCANCEL = 1, MB_YESNOCANCEL = 3, MB_YESNO = 4;
    var IDOK = 1, IDCANCEL = 2, IDYES = 6, IDNO = 7;

    var rc = messageBox("続けますか?", MB_YESNO);
    if( rc == IDYES )
        ....

■ openDocument( pathNameString )

■ openDocument( pathNameString, charCode )

 指定パスのファイルをオープンしドキュメント、ビューのオブジェクト(インスタンス)を作成します。

 引数 charCode でファイルの文字コードを指定することもできます。

    0           SJIS
    1           EUC
    2           JIS
    3           自動判別
    上記以外    無視

サンプルプログラム:


実行結果:




■ rand( n )

 0〜n−1の乱数を発生します。

サンプルプログラム:

    srand();
    for(var i=0;i<100;) {
        var r = rand(100);                  //  0〜99の乱数を発生
        console.write(format("%8d", r));    //  それを表示
        if( ++i % 10 == 0 )
            console.write("\n");
    }

実行結果:

      27      72      63      34      21      17      85      65      80      16
       5      13      94      25      71      28      98      76      88      19
      99      38      91      44      16      34      81      24      62      25
      25      10      51      88      88      45      57      28      91      51
      82      37      39      98      30      44      50      91      63      95
      54      77      79      31      99      47      59      96      60      38
      43      46      67      89      90      24      81      85      91      84
      76      51      44      86      11      99      82      34      53      59
      62      39      93      77      14      38      25      70      35       5
      63      43      93      52      17      16      11       1      40      22

■ sleep( milliSecond )

 指定秒数スリープします。

■ splitPath( path )

 フルパスを分解します。結果は "drive", "dir", "fname", "ext" というプロパティ(メンバ変数) をもつオブジェクトで返されます。

サンプルプログラム:

    var sp = splitPath("c:/vc/vivi/vi.cpp");   //  パスを分解
    console.writeln(sp.drive);
    console.writeln(sp.dir);
    console.writeln(sp.fname);
    console.writeln(sp.ext);

実行結果:

    c:
    /vc/vivi/
    vi
    .cpp

■ srand( n )

 乱数のシードを設定します。nを省略した場合はシステムクロックをシードとして使用します。

■ string( n )

 数値を文字列に変換します。format("%d", n) と等価です。

■ winExec( cmd , cmdshow=SW_SHOWNORMAL)

 プログラムを起動します.第2引数は省略可能です.