| 
       << Click to Display Table of Contents >> マニュアル > スクリプトガイド > スクリプトVer2(SC2構文) > データ型 | 
    
データ型について
SC2構文で扱える値のデータ型は以下の5種類です。
データ型  | 
説明  | 
ブール  | 
ブール値(T or F)です。“T”はOnの状態を表し、“F”はOffの状態を表します。  | 
数値  | 
数値です。小数点も扱えます。  | 
文字  | 
文字列です。  | 
時刻  | 
時刻(日時)です。  | 
オブジェクト  | 
オブジェクトを変数に格納することができます。  | 
  | 
上表以外の状態として、不定値(#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進数で表現できます
  | 
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#  | 
相対時刻による指定
時刻型では相対時刻表現も可能です。相対時刻とは、現在の日時を基準として1日後の日時、などの様に指定する方法です。
相対時刻で時刻表現する場合のフォーマットは以下のとおりです。
基準時刻[+時間間隔] [-時間間隔]…  | 
フォーマットの基準時刻の部分には以下の基準時刻が指定できます。
基準時刻  | 
説明  | 
現在が「2016/06/15 12:12:12」(水曜)とすると  | 
now  | 
現在。  | 
2016/06/15 12:12:12  | 
year  | 
今年。  | 
2016/01/01 00:00:00  | 
month  | 
今月。  | 
2016/06/01 00:00:00  | 
week  | 
今週。  | 
2016/06/12 00:00:00  | 
day  | 
今日。  | 
2016/06/15 00:00:00  | 
hour  | 
今の時刻(時まで有効)。  | 
2016/06/15 12:00:00  | 
minute  | 
今の時刻(分まで有効)。  | 
2016/06/15 12:12:00  | 
future  | 
未来。  | 
はるか未来の時刻。  | 
past  | 
過去。  | 
はるか過去の時刻。  | 
時間間隔の前には「+」か「-」及び数値を必ず指定します。「+」であれば未来へ、「-」であれば過去になります。例えば「+10m」であれば基準時刻から10分後を指します。
時間間隔  | 
説明  | 
y  | 
年  | 
mo  | 
月  | 
d  | 
日  | 
w  | 
週  | 
h  | 
時  | 
m  | 
分  | 
s  | 
秒  | 
例)現在が「2016/01/13 12:12:12」(水曜)の場合
  | 
  | 
現在が31日の場合、NOWに対して月の引き算を含めた相対時刻(例 #NOW-1MO#等)を使用できません。理由は、31日の1ヶ月前が30日までしかない月の場合、該当する日が存在しないためエラーが発生しますので注意してください。  | 
  | 
時刻型の値で計算を行った場合以下のようになります。 
 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#になる。  | 
  | 
ルートメソッド「GetRelativeTime」は、ある特定の時刻(現在の時刻ではなく、指定した時刻)を基準に相対時刻の書式を用いて、相対時刻を求めることができます。 
 例1)結果は「2002/10/9 10:10:10」になります。 
var a = ::GetRelativeTime(::CTime("2002/10/10 10:10:10"), "now-1d");
 例2)結果は「2002/10/9 0:0:0」になります。 
var a = ::GetRelativeTime(::CTime("2002/10/10 10:10:10"), "day-1d");
 | 
型変換について
ルートメソッドには以下の変換メソッドが用意されており、スクリプトなどから呼び出す事で型変換を行うことができます。
値をブール型に変換する。  | 
|
値を数値型に変換する。  | 
|
値を文字列に変換する。  | 
|
値を時刻型に変換する。  | 
|
フォーマットに従った数値文字列を作成する。  | 
|
値を時刻文字列に変換する。  | 
|
値を16進数の文字列に変換する。  | 
|
値を8進数の文字列に変換する。  | 
|
値を2進数の文字列に変換する。  | 
|
16進数の文字列を値に変換する。  | 
|
8進数の文字列を値に変換する。  | 
|
2進数の文字列を値に変換する。  | 
例えば以下の場合、変数cには“Data1:123 Data2:456”という文字列が代入されます。
var a = 123; var b = 456; var c = "Data1:" + ::CStr(a) + " Data2:" + ::CStr(b);
  | 
CNumToLocale(NL)は小数点や桁数を調整した数値文字列を生成する便利な関数です。第一引数で数値を、第二引数で小数点以下の桁数を指定します。 
 例)以下の例では、aには"12.00"という文字が代入されます。 var a = ::NL(12, 2);  |