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


COCO  2004-05-16 17:39:20  No: 113266  IP: [192.*.*.*]

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

編集 削除
いな  2004-05-16 17:42:35  No: 113267  IP: [192.*.*.*]

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

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

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

編集 削除
TC  2004-07-14 19:13:46  No: 113268  IP: [192.*.*.*]

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

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

編集 削除
いな  2004-07-14 19:24:42  No: 113269  IP: [192.*.*.*]

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

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

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

編集 削除
ちゃん  2004-07-15 09:06:58  No: 113270  IP: [192.*.*.*]

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

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

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

結局、難しい問題です。

編集 削除
特攻隊長まるるう  2004-07-15 09:22:44  No: 113271  IP: [192.*.*.*]

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

編集 削除
ささ  2004-07-15 09:46:13  No: 113272  IP: [192.*.*.*]

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

編集 削除
Dental  2004-07-15 10:49:00  No: 113273  IP: [192.*.*.*]

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

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

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

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

編集 削除
TC  2004-07-15 18:33:33  No: 113274  IP: [192.*.*.*]

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

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

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

編集 削除
ガッ  2004-10-15 20:58:21  No: 113275  IP: [192.*.*.*]

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

編集 削除
ガッ  2004-10-16 00:47:24  No: 113276  IP: [192.*.*.*]

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

編集 削除