- ベストアンサー
命令文を外部から取得してVBで実行
設定ファイル(テキスト形式)などに、例えば A=Mid(stringA,StartNo,lengthNo) のような式(命令文)を書いたとき、VBからその設定ファイルの式(命令文)を読み込み、そのまま実行することができないでしょうか。 MIDだけなら条件文で対応もできるのですが、使いたい文字列関数や変数がたくさんあり、また使い方もそのときによって違うので、できれば式(命令文)を設定ファイルから取得したいのです。 是非ご教授ください。よろしくお願いします。 なお、Visual Basic 6でプログラミングしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そういう思想に向かうときは、設計がおかしい場合も多々ありますので、 できれば、そうならない設計を考えてみてください。 といってもそんなに大げさな話ではなく、可能は可能です。 VBScriptのEval関数を呼ぶとか、 http://homepage2.nifty.com/Dee/vb/tips/vb/vbscripteval.html .NET Frameworkであれば、その場でコード書いてコンパイルして実行とかも出来ますが、 VBCodeProvider Class http://msdn2.microsoft.com/en-us/library/microsoft.visualbasic.vbcodeprovider.aspx あえてお薦めはしません(理由は上述)。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
そんなことは大掛かりな仕組みの中でやれるようにしないと出来ませんよ。言語開発経験でもなければ。 よく素人がエクセルなんかでも、関数体系に従ったテキストで文字列をセルに書くと実行してほしい夢想する質問が時どきある。 それだけプログラマーの夢みたいなところがあるが。 いまある言語の実行中に別言語を作るとか実行することに当たると思うが、並みのプログラマに出来るはず無い。 簡単なケースでEVALUATEなんて仕組みをつくったりしているソフトがあるようだが。 http://www.famlog.jp/article.php?id=687 コボルのEVALUATEは別 http://www16.plala.or.jp/hiyokogumi/dic/a_evaluate.html それと我々が使わせてもらっている、メソッドやプロパティがそれに当たるといえる。本格的に突き進めると、トランスレーター的言語を内包するようなことになる。 プログラム基礎論として、コンパイルの関連をもっと一生かけて勉強したら。
お礼
早速の回答ありがとうございます。 使えそうな関数やAPI、あるいはうまいアルゴリズムでもあればと思ったんですが、やはり大掛かりな仕組みがいるのですね。 ちょっと面倒ですが、Midなら、Instrならと関数ごとに条件文を作り、対応する変数を取得して実現することにします。 ありがとうございました。
お礼
ご回答ありがとうございます。 設計がおかしい場合も・・・!?そうなのですか、思いもしませんでした。 Eval関数も見てみましたが、まず、設計からどう作るべきか考えてみます。 ありがとうございました!!