データ型

<< Click to Display Table of Contents >>

マニュアル > スクリプトガイド > スクリプトVer2(SC2構文) >

データ型

データ型について

SC2構文で扱える値のデータ型は以下の5種類です。

 

データ型

説明

ブール

ブール値(T or F)です。“T”はOnの状態を表し、“F”はOffの状態を表します。

数値

数値です。小数点も扱えます。

文字

文字列です。

時刻

時刻(日時)です。

オブジェクト

オブジェクトを変数に格納することができます。

 

hint

上表以外の状態として、不定値(#N/A#)と空値(#NOTHING#)があります。詳しくは「不定値と空値について」を参照して下さい。

 

 


 

ブール型

 

T もしくは Fと記述します。TはOnの状態をあらわし、FはOffの状態を表します。TRUE もしくは FALSEと書くこともできます(※全て大文字で記述してください)。

 

例)

var a = T;
var b = F;
var d = a && b;		// dはFになります。
var e = a || b;		// eはTになります。
var f = T && F || F; 	// fはFになります。

 

 


 

数値型

 

数値です。通常の整数はもちろん倍精度浮動小数も扱えます。

 

例)

var a = 123.45;
var b = 23.45;
var d = a + b;		// d は146.9になります。
var e = 0xFF23;		// 0xを頭に付けると数値を16進数で表現できます

 

attention

16進数表記で扱える値の範囲は0x00000000 ~ 0xFFFFFFFFになります。

 

 


 

文字型

 

文字です。文字は必ず、「"」で囲みます。

 

例)

var a = "Hello";
var b = a + " " + "World";	// b は"Hello World"になります。

 

 


 

時刻型

 

時刻です。時刻の表現には時刻書式を用います。時刻書式については「時刻型の書式」を参照下さい。

 

例)

var a = #2005/1/2 3:4:5#;	//2005年1月2日3時4分5秒
var a = #2005/1/2 3:4:5.123#;	//2005年1月2日3時4分5秒123ms
var a = #now#;			//現在の時刻
var a = #now - 1D#;		//現在の時刻から1日前(24時間前)の時刻

 

 


 

オブジェクト型

 

オブジェクトを変数に格納することができます。

 

例)

var a = this;			//自分自身のオブジェクトを代入する
a.FillColor = "#FF0000";	//自分自身の背景を赤にする
a = parent;			//親オブジェクトを代入する
a.FillColor = "#00FF00";	//親の背景を緑にする

 

 

 

 

時刻型の書式

時刻型のデータでは、直接的な時刻指定のほか、例えば今現在から10分後などといった相対時刻を求めることができます。また、コントロールの中には時刻型のプロパティを持つものがあり、それらに対してスクリプトからアクセスする場合には、時刻型の変数によって行います。

 


絶対時刻による指定

 

絶対時刻で時刻表現する場合のフォーマットは以下のとおりです。

 

#yyyy/mm/dd H:M:S#

 

 

例)

#2005/1/2 3:4:5#

 

 

msまで含めたい場合は以下の書式になります。

 

#yyyy/mm/dd H:M:S.ms#

 

 

例)

#2005/1/2 3:4:5.123#

 

 

hint

SC2で時刻型の値で計算を行った場合、以下のようになります。

 

var a = #2004/1/1 0:0:0#;
var b = #2004/1/1 0:1:0#;
var d = b - a;           // dは60(秒)になる。
var e = a + 10;          // eはaに10秒加算されて#2004/1/1 0:0:10#になる。

 

 


 

相対時刻書式による指定

 

時刻型では相対時刻表現も可能です。相対時刻とは、現在の日時を基準とした相対的な日時を「相対時刻書式」で指定する方法です。

相対時刻書式では様々な指定方法が用意されており、例えば、現在が「2016/01/13 12:12:12」(水曜)の場合、#now# と指定すると、現在の日時である「#2016/01/13 12:12:12#」となります。

また、#now+1d# と指定すると、現在+1日、つまり「#2016/01/14 12:12:12#」となります。

 

 

詳細は、Appendixの「相対時刻書式」を参照してください。

 

 

型変換について

ルートメソッドには以下の変換メソッドが用意されており、スクリプトなどから呼び出す事で型変換を行うことができます。

 

CBool

値をブール型に変換する。

CNum

値を数値型に変換する。

CStr

値を文字列に変換する。

CTime

値を時刻型に変換する。

CNumToLocale(NL)

フォーマットに従った数値文字列を作成する。

CTimeStr(TS)

値を時刻文字列に変換する。

CNumToHex

値を16進数の文字列に変換する。

CNumToOct

値を8進数の文字列に変換する。

CNumToBin

値を2進数の文字列に変換する。

CHexToNum

16進数の文字列を値に変換する。

COctToNum

8進数の文字列を値に変換する。

CBinToNum

2進数の文字列を値に変換する。

 

例えば以下の場合、変数cには“Data1:123 Data2:456”という文字列が代入されます。

 

var a = 123;
var b = 456;
var c = "Data1:" + ::CStr(a) + " Data2:" + ::CStr(b);

 

 

hint

CNumToLocale(NL)は小数点や桁数を調整した数値文字列を生成する便利な関数です。第一引数で数値を、第二引数で小数点以下の桁数を指定します。

 

例)以下の例では、aには"12.00"という文字が代入されます。

var a = ::NL(12, 2);