hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
手軽に扱える簡易データベース代わりにもなるデータ構造がCOM(Scripting ランタイム?)にあります。それが辞書(Dictionary)です。
キーを適当(「あ」でも「%」でもなんでも)に入力してください。キーが登録されていれば対応する単語を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | - | ! - | ! |
|
とりあえず「初めてのCOM」(Scripting ランタイム?^^;違いが良く分かっていない)ということで、オブジェクトとメソッド、プロパティの書き方だけレポート。
ここでオブジェクト指向について触りすらも分からない人の為に簡単な用語解説。
最初は目的のオブジェクトを作ることから始める。これがnewcom。
newcom dc , "Scripting.Dictionary"
でScriptランタイムのDictionaryオブジェクトを作ったと思ってください。
オブジェクトは何個でも(システムに制限がなければ)作れます。
そして指定したオブジェクト型変数が1つのオブジェクトを表します。
次にメソッドの書き方。HSP命令に引数があるようにメソッドにも引数があったりします。
メソッドの書き方のまとめ:
mcall dc , "Add" , "H" , "ホット" ; ○ dc -> "Add" "H" , "ホット" ; ○ dc -> "Add" , "H" , "ホット" ; ×エラーです。
メソッドは自分自身を含んでいるオブジェクトに対して動作を起こします。
メソッドだけではどのオブジェクトに対する操作なのか分からないのでオブジェクト名(オブジェクト型変数)も一緒に書く。
またメソッドの戻り値を利用する場合は事前にcomres命令で戻り値の格納される変数を指定してやります。
次はプロパティの書き方。
title "単語数 = "+dc("count")
こんな風にメソッド同様、プロパティ名だけではどのオブジェクトのプロパティなのか分からないのでオブジェクト名(オブジェクト型変数)も一緒に書く。
HSPの関数同様、プロパティは値を返すので左辺に代入するか式中で使わないとエラーです。
また、こちらからオブジェクトに対してプロパティを設定することも可能。(読み取り専用プロパティには無理)
dc("compareMode") = 0 ; 完全一致検索
プロパティを左辺にして代入文で値の設定が可能。
プロパティの中には引数(添え字?)のつくものもあったりします。そんな時は、
dialog "< "+key+" >は< "+dc("Item",key)+" >のキーです",0,"登録済み" dc("Item",key)
プロパティの次に目的の引数(添え字)をプロパティ名の隣にカンマで区切って指定する。
上のは引数(添え字)に変数を指定してます。
以上。Dictionary自体について説明してないのは、MSDNで調べたほうがいいからです^^; -- kz3 2005-09-28 11:35:59 (水)
今回使ったメソッド・プロパティのリストです。
Dictionaryオブジェクト | |||||
名前 | 種類 | 属性 | 書式 | 説明 | 戻り値 |
---|---|---|---|---|---|
Add | M | mcall object , "method" , "Key" , "Value" | オブジェクトにKeyとValueを新規登録する | ||
object -> "method" "Key" , "Value" | |||||
Exists | M | mcall object , "method" , "Key" | オブジェクトにKeyが登録されているか調べる | ||
object -> "method" "Key" | |||||
Count | P | R | object ( "property" ) | 辞書に登録されているKeyとValueの組を取得する | 登録数 |
CompareMode? | P | R/W | object ( "property" ) | 完全一致検索は0、大文字小文字を区別しない場合は1をセットする | |
Item | P | R/W | object ( "property" , "Key" ) | Keyに対応するValueを取得する また既に登録されているKeyに新しいValueを関連付けることもできる | Value |
辞書はキーと値からなる単純なデータ構造です。こんなものに簡単に利用できます。
などなど。
1 2 |
|
mcall dc , "Add" , "H" , "ホット" ; ○ dc -> "Add" "H" , "ホット" ; ○ dc -> "Add" , "H" , "ホット" ; ×