カレントプロシージャー名の取得方法


COCO  2004-05-17 02:39:20  No: 113266

カレントプロシージャー名を取得する簡易な方法はないでしょうか?


いな  2004-05-17 02:42:35  No: 113267

グローバル変数を一つ用意しておいて
各プロシージャの頭で、カレントプロシージャ名をセットしていく

あとは取得したいときに、そのグローバル変数を参照すればよろし。

コーディングはめんどくさいけど、頭を使わない簡易な方法


TC  2004-07-15 04:13:46  No: 113268

↑んなもん、誰でも思いつくわ(笑)

結局、エラー処理のためと思うのですが、
Errオブジェクトに、モジュール名とプロシージャー名の
プロパティがあればなぁ、と思うのは私だけではないはず。


いな  2004-07-15 04:24:42  No: 113269

>>↑んなもん、誰でも思いつくわ(笑)
そそ、だから、だれでも思いつく方法。を明記してそれ以外で・・・。
という書き込みの仕方をしてくれれば良いんだけどね?

ま、簡易な方法で&プロシージャ名を取得するという
必要十分条件を満たせればよいかなと思ってさ。

別の手法もあるにはあるんだけど、
スレ主から何の反応もないので、これで十分だったと認識しますが。
実際どうなんでしょうね?(笑


ちゃん  2004-07-15 18:06:58  No: 113270

> 必要十分条件を満たせればよいかなと思ってさ。

満たしていませんよ (^^;

あるプロシージャから別のサブプロシージャを呼び
元のプロシージャに戻ってきた後に
グローバル変数を参照すると、
カレントプロシージャではなく、
サブプロシージャの名前を返してしまいます。

結局、難しい問題です。


特攻隊長まるるう  2004-07-15 18:22:44  No: 113271

>あるプロシージャから別のサブプロシージャを呼び
>元のプロシージャに戻ってきた後に
>グローバル変数を参照すると、
それこそ戻ってきた時にグローバル変数を変更するという
手法なんでしょ?そのくらいは別に自分で考えつく範囲かと…


ささ  2004-07-15 18:46:13  No: 113272

この手の話題って、たまにQAの掲示板で見かけるけど
何の為に必要なんだろうね?


Dental  2004-07-15 19:49:00  No: 113273

> この手の話題って、たまにQAの掲示板で見かけるけど
> 何の為に必要なんだろうね?

エラーのトレースに必要なのかも知れませんね。

ちなみに、VB.NETであれば、StackTraceクラスで取得できます。

VB6等の場合は、該当する機能はありませんが、MZ-Tools Addinを
使うことで、プロシージャ名を含んだエラーハンドラを生成できます。


TC  2004-07-16 03:33:33  No: 113274

エラーログをファイルにAPPENDモードで書き出すような
機能を付けたいときに欲しいですねぇ。

コンパイルしちゃったらプロシージャー名って、
単なるアドレスになるんだけど、プロシージャー名として
保持しているんだろうか?

ソースで走らせるとき「呼び出し履歴」なんか使えそうなんだけど
オブジェクトとして「呼び出し履歴」を使えるはずなんだけどなぁ。


ガッ  2004-10-16 05:58:21  No: 113275

まぁ、標準でないのならゴリゴリ実装するしかないわな。
…関数の最初と最後に関数名をログアウトするような、な。(orz


ガッ  2004-10-16 09:47:24  No: 113276

と、釣られて書いてしまった(orz
よくみりゃかなーり前の日付じゃん


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加