簡単なスクリプトを実行するには?


たかみちえ  URL  2001-10-04 18:57:31  No: 74887  IP: [192.*.*.*]

しばらく音沙汰なしでした^^;
  簡単なスクリプト機能のあるものを作りたいんですけど、
(A="text1",B="text2",print A+Bで"text1text2"と出力したり…)
その命令の読みこみ方にちょっと困ってます。
Select Case で地道に一個ずつ調べていくという方法もありますけど、
他になにか方法はないんでしょうか?
上のとおりだととっても無駄をしている気がするんですけど…。

編集 削除
Say  2001-10-10 10:58:57  No: 74888  IP: [192.*.*.*]

こんなんでいいなら・・・

'microsoft Script Control を参照設定すること
Private Sub Command1_Click()
    Dim objVBS As New ScriptControl
    Dim strScript As String
    strScript = "Dim A,B :A=""text1"":B=""text2"":MsgBox A & B "
    objVBS.Language = "VBScript"
    objVBS.ExecuteStatement strScript
End Sub

編集 削除
Say  2001-10-10 11:08:27  No: 74889  IP: [192.*.*.*]

P.S.
マルチステートメントがいやなら、たとえばこう。

Private Sub Command2_Click()
    Dim objVBS As New ScriptControl
    Dim strScript As String
    strScript = ""
    strScript = strScript & " Dim A , B       " & vbCrLf
    strScript = strScript & " A = ""text1""   " & vbCrLf
    strScript = strScript & " B = ""text2""   " & vbCrLf
    strScript = strScript & " MsgBox A & B    " & vbCrLf
    objVBS.Language = "VBScript"
    objVBS.ExecuteStatement strScript
End Sub

編集 削除
たかみちえ  2001-10-10 18:43:35  No: 74890  IP: [192.*.*.*]

えと…。ScriptControlって、自作言語は無理なんでしょうか?
  スクリプトというか、自作エディタのマクロとして使いたいんですけど…。

編集 削除
Say  2001-10-11 09:30:43  No: 74891  IP: [192.*.*.*]

言語の自作ということですね。
基本的にはトークンを切り出して、
予約語なら処理ルーチンにとんで、
予約語でなければ
シンボルテーブルに登録する・・・の
繰り返しになります。
前方参照考えると、最低2パスにしたほうが
いいでしょうし。
文字列処理の苦手なVBにはつらいかも・・・
スピード気にしないならいいですが。
単に、構文解析ツール(いわゆるパーサ)が
つくりたいなら、YACCなんてツールもありますが・・・。

編集 削除
たかみちえ  2001-10-11 20:09:58  No: 74892  IP: [192.*.*.*]

んと、
line = print "message"
str = split(line," ")
Select case str(0)
case print
  main.maintext.seltext = str(1)
case …
  …
end Select
    とやるというかんじでしょうか?

編集 削除