忍者ブログ
Since 14.Jan.2009:08:29 プログラミングと絵のブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


会社でUWSCというツールの使い方を習ったんで総括
基本的にGUIのマクロツール

マクロはUWSCスクリプトというDSLを使って作ることも出来る
スクリプトはVBScriptと比べると、

良:
・関数の引数が省略できる(デフォルト値で)
・値を返すのが「result = 」なので少しマシ
・continueが使える
・構文が少し短い
・ファイルオープン時にファイルが無かったら自動生成
・Ole使うのにsetが不要


悪:
・関数名が省略形使いすぎで分かりにくい
・組み込み関数が異常に少ない(特に文字列、配列、ファイル)
・関数とサブルーチンを区別する(関数は値を返さないとエラー)
・複数行のif文はifbを使って区別する
・手続き型
・正規表現


複数行のif文でわざわざifbが必要だったりしてインタプリタの構文解析力が低いのではないかと
それに〆文字もfendとかnext色々あるし。
endに統一してほしい
でも関数周りの定義は少し楽かな

手続き型なのは基本的にマクロ用だから別に気にならないか
ファイルと配列使うのが面倒かな?

正規表現とファイルはOleのを使えば何とかなるけど
文字列、配列の関数が最低限しか定義されてない

基本的にどうしても必要な時以外はUWSC使わないのが一番だなあ
処理も遅いし
PR

今日は珍しくVBScriptネタ
大嫌いだけど会社で使うのでしょうがない

主にクラスの使い方と擬似的な継承について

class SampleModel
private xxx

private sub Class_Initialize
set xxx = new Parent
end sub

function SampleMethod1(a, b)
SampleMethod1 = xxx.SampleMethod1(a, b)
end function
end class


基本的にこんな感じ
Class_Initializeというメソッドがコンストラクタ
VBScriptはコンストラクタに引数付けれないっていう腐った言語

まぁそれは置いといて、コンストラクタで
親扱いしたいクラスをインスタンス変数にset
VBScriptはオブジェクトの代入にsetを付けないといけない腐った言語

あとは同名のメソッドを定義して、
その中で継承したいメソッドに引数渡して実行結果をreturn
メソッドに代入する謎な方法でreturn
値を返しても処理は続く
VBScriptはreturnに相当する命令がない腐った言語

これで擬似継承ができた
てかこれ継承?
継承ってのは明示しなくても親のメソッド使えるのが普通だよ

で、これを

dim Sample
set Sample = new SampleModel


として別名でset
何故ならVBScriptはクラスメソッドが使えない腐った言語

こうして別名を付けないとSample.SampleMethod1みたいに使えない
せめてStatic宣言くらい実装しとけよ・・・
もしくはRubyみたいにself.methodとか
Me.MethodもThis.MethodもSelf.Methodも試したけど駄目だった

クラスメソッドは全部この方法でインタフェースみたいに実装して、
別に分けておくのがコツかな
インスタンスメソッドは普通に使えるから、
インスタンスを生成するやつに擬似継承でクラスメソッドも埋め込む感じ

Rubyに比べたら何十、何百倍も大変だけど

  HOME  
カレンダー
10 2024/11 12
S M T W T F S
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 29 30
ブログ内検索
プロフィール
HN:
uguisu_an
年齢:
35
性別:
男性
誕生日:
1989/08/20
自己紹介:
基本的にテキトー
最新コメント
[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
最新トラックバック
アクセス解析
フリーエリア
P R
忍者ブログ [PR]