Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Имя процедуры функции внутри себя ...   Найти похожие ветки 

 
Slaga ©   (2004-07-29 15:31) [0]

Подскажите пожалуйста, как узнать имя процедуры\функции внутри самой себя, возможно ли такое ?


 
Ega23 ©   (2004-07-29 15:32) [1]

В общем случае, к сожалению, нет. В частных - через большие извраты.


 
Slaga ©   (2004-07-29 15:38) [2]

:( жаль


 
Palladin ©   (2004-07-29 15:40) [3]

Интересно, а зачем тебе это?


 
Slaga ©   (2004-07-29 15:44) [4]

Я делаю журналирование работы своей программы, попросту говоря веду лог, и в определенных прц\фнк запысываю в лог время дейсвие и результат, нехочеться каждый раз писать руками что за процедура пишет в лог.


 
default ©   (2004-07-29 15:47) [5]

как-то предлагалось внутри ф-ции вызывать Assert для генер-ии искл-ия, оно даст номер строки
и составить массив соот-вия номеров строк и имён подпрограмм


 
Palladin ©   (2004-07-29 15:47) [6]

Какая разница: писать LogWrite(GetProcName) или LogWrite("MyProc") ?


 
Slaga ©   (2004-07-29 15:49) [7]

>Palladin
Автоматизация !


 
Palladin ©   (2004-07-29 15:50) [8]

Где?


 
Slaga ©   (2004-07-29 15:51) [9]

>default
а можна пару строк кода в пример ?


 
Palladin ©   (2004-07-29 15:56) [10]


> default ©   (29.07.04 15:47)

Так это индексатор писать надо... Существующих я вроде не видел...


 
default ©   (2004-07-29 15:59) [11]

1 procedure P1;
2 begin
3 end;
4
5 procedure P2;
6 begin
7  из Assert(False) можно достать цифру 7(то есть номер строки кода где возникло искл-ие(
 и потом Log(Mas[ExtractStringNumber])

...
Mas: Array[1..LastStringNumber] of String = (...,"2", ...)
либо навроде этого массив
либо форм-ать массив ТОЛЬКО со строками подпрограмм меньше памяти расх-ся но меньше скорость доступа


 
Slaga ©   (2004-07-29 16:03) [12]

Спасибо


 
default ©   (2004-07-29 16:03) [13]

Mas: Array[1..LastStringNumber] of String = (...,"P2", ...)
по-моему эту идею Игорь Осовяк подал(сори если ошибся в написании фамилии)


 
Гаврила ©   (2004-07-29 16:28) [14]

то есть вместо записи

Log("ProcedureName")

получится

try
Assert(False)
except
 //обработка номера строки
 //запись в лог
end;

try \ except нужен для того, чтобы выполнение продолжалось, если в протокол записывается просто информация о нормальном ходе.

Смысла не вижу в упор


 
Slaga ©   (2004-07-29 17:53) [15]

Да, если б просто было что то типа Self.ProcName  :))



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
14-1090823281
Ломброзо
2004-07-26 10:28
2004.08.15
ЧТо-то я ничего не понял. Толкователи есть?


4-1089042434
Epifun
2004-07-05 19:47
2004.08.15
Изменения в файловой системе....


1-1090873774
Knight
2004-07-27 00:29
2004.08.15
Можно ли сделать сдвиг одновременно всех символов в строке...


3-1089979442
AlexanderSK
2004-07-16 16:04
2004.08.15
Несколько одновременных запросов к БД


3-1090143299
voe
2004-07-18 13:34
2004.08.15
Tquery