VBScriptで連想配列を使いたい
どうしてVBScriptには、連想配列という概念が無いのでしょうか??
結構、使えれば便利なんだけどなぁ。。と思いませんか?
いろいろ調べていくと連想配列が使えることが判明しました。
それは、Scripting.Dictionaryというライブラリです。
標準でインストールされているので、このライブラリを使ってみたいと思います。
まずは、これですね。
Dim bArray
Set bArray = CreateObject("Scripting.Dictionary")
メソッドはいくつかありますが、主には以下の3つが使えればまずはOKだと思います。
・Add
連想配列のキーとその値を指定しオブジェクトに保持する
bArray.Add key, val
・Item
連想配列のキーを指定し、オブジェクトからその値を取得する
val = bArray.Item( key )
・Remove
連想配列のキーを指定し、オブジェクトからその値を削除する
bArray.Remove key
どうでしょうかね?
その他メソッドも書いておきましょうね。
Items() Keys() Exists() RemoveAll()
また、プロパティは Count というものがあります。
私は、これをクラスにしてDBアクセスクラスに値を渡すときに良く使っています。
その他、いろいろな場面で使っていますので、また次回書くことにしましょうね。
APT(Advanced Package Tool)のインストール
今回は、APT(Advanced Package Tool)のインストールをCentOS4.4で試してみました。
APT(Advanced Package Tool)は、各パッケージのインストール・アップデート・削除等を簡単に実行するためのツールです。
とても優れている点は、目的のパッケージに必要な他のパッケージを調べてまとめてインストールしてくれるのです。
#aptを使えるようにする
rpm --import /usr/share/doc/centos-release-4/RPM-GPG-KEY
yum install apt
apt-get update
ついでに、gccをAPTを使ってインストールしてみました。
#gccのインストール
apt-get install gcc
おまけで、g++もインストール。こちらは、yumを使っていますね。
#g++のインストール
yum install gcc-c++
これで、コンパイル環境ができてしまうわけです。
簡単ですね^-^
VBScriptの変数の型変換
VBScriptって普段あまり変数の型について深く考えたことが無いと思うのだけど、みなさんどうでしょうかね?
PHPでもVBScriptと同じで、変数の型ってあまり考えていませんよね?
もともと言語の仕様がそういうものなので・・・といえば、それまでなのですが(笑)
ときどき、IF文でうまく分岐ができずに「おやっ?」って思っているのではないでしょうか?
C言語のように変数の型がしっかりしている言語を普段から使っている人でしたら、「何を今更言ってるの?」と思うはずです。
さて、VBScriptでも、以下のaとbは、型が違いますね。
Dim a, b
a="1"
b=2
この2つを比較する場合は、変数aを数値型にするか、変数bを文字型にするか、のどちらかを行う必要がありますね。
変数aを数値型にする場合は、 CInt( a ) とします。
変数bを文字型にする場合は、 CStr( b ) とします。
これにより、型が一致して正しく比較・判断ができるでしょう。
せっかくですので、一通りの変換関数をまとめておきましょうね。
・CBool( expression )
指定された式を内部処理形式 Boolean の Variant に変換した値を返す変換関数です。
・CByte( expression )
指定された式を内部処理形式 Byte の Variant に変換した値を返す変換関数です。
・CCur( expression )
指定された式を内部処理形式 Currency の Variant に変換した値を返す変換関数です。
・CDate( date )
指定された式を内部処理形式 Date の Variant に変換した値を返す変換関数です。
・CDbl( expression )
指定された式を内部処理形式 Double の Variant に変換した値を返す変換関数です。
・CInt( expression )
指定された式を内部処理形式 Integer の Variant に変換した値を返す変換関数です。
・CLng( expression )
指定された式を内部処理形式 Long の Variant に変換した値を返す変換関数です。
・CSng( expression )
指定された式を内部処理形式 Single の Variant に変換した値を返す変換関数です。
これからは、もっともっと変数の型について考えながらプログラムをしましょう!
そうすれば、もっともっと安全でバグの軽減につながりますよ!
余談ですが…VisualC++だとCString()なんですが、VBScriptだと、CStr()になっているって…
マイクロソフトの嫌がらせかな??せめて統一してくれればいいのにね(笑)