powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по PROGRAM()
10 сообщений из 10, страница 1 из 1
Вопрос по PROGRAM()
    #35819024
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по поводу PROGRAM(). В ней надо задать уровень вложенности выполняемой программы если ничего не задавать то покажет ту которая выполняеться на данный момент если 0 или 1 то основную программу. Вопрос тако у меня выполняеться prg, в ней выполняеться процедура и PROGRAM() выдает мне имя процедуры а prg уже приходиться искать вручную, как мне определить уровень вложенности, чтобы показывало имя prg?
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819079
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз по-русски задайте вопрос.
что Вы желаете отследить с помощью функции, где и для каких целей?
напишите:
имею то-то и то-то ..,
хочу чтобы ...
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819136
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Program(-1) выдает текущий уровень

это откровение я почерпнул из хелпа - так что иногда стоит его читать , перед тем как спрашивать.

Так что имея в наличии текущий уровень - стройте цепочку вызовов хоть до самого "верха"
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819153
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоеще раз по-русски задайте вопрос.
что Вы желаете отследить с помощью функции, где и для каких целей?
напишите:
имею то-то и то-то ..,
хочу чтобы ...

Да хочу отследить где происходит ошибка.
Имею - sumiznos.prg в ней procedure avtospisanie при возникновении ошибки в процедуре program() выводит название процедуры avtospisanie , но так как у меня куча разных prg то приходиться искать в какой же prg находиться процедура avtospisanie
Хочу - чтобы показывало prg в которой находиться процедура с ошибкой, но для этого в program() нужно указать ее [nLevel] - PROGRAM([nLevel]). Вот собственно и не пойму как узнать этот [nLevel] программно?
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819177
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-=AlexiS=-Program(-1) выдает текущий уровень

это откровение я почерпнул из хелпа - так что иногда стоит его читать , перед тем как спрашивать.

Так что имея в наличии текущий уровень - стройте цепочку вызовов хоть до самого "верха"

Да спасибо, так и делал но выдавало ошибку, но теперь уже разобрался ))
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819206
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
on error do ddd with programm()

procedure ddd
lparam tcProgramm

значение функции нужно передавать в процедуру обработки ошибки,
если Вы поступаете иначе, то нужно переделать
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819227
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex-ZZZ
astackinfo()
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819265
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоon error do ddd with programm()

procedure ddd
lparam tcProgramm

значение функции нужно передавать в процедуру обработки ошибки,
если Вы поступаете иначе, то нужно переделать

Вобщем все равно чтото не то. Делаю я так

on error DO ERR with error(),program(-1),program(),message(),message(1),lineno()


PROCEDURE ERR
PARAMETERS er,prn,pr,mesag,mesag1,lin
pr1=PROGRAM(prn)
lin=ALLTRIM(STR(lin,15))
sod = "ОШИБКА!!! PR1+", "+PR+", "+", "+mesag+", "+", "+lin
D=MESSAGEBOX(sod,48)
IF D=1
RETURN TO pr
EXIT
ENDIF
ENDPROC

Но pr1 который должен выводить название текуще выполняемой программы выдает - "ON...". Объясните пожалуйста почему?
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819314
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все разобрался вместо program() нужно использовать sys(16). Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Вопрос по PROGRAM()
    #35819325
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
on error DO ERR with error(),program(),program(),message(),message( 1 ),lineno()

do tttt
return 


procedure tttt

a= 1 
b= 2 

kk=c

return 


PROCEDURE ERR
lPARAMETERS er,prn,pr,mesag,mesag1,lin
lin=ALLTRIM(STR(lin, 15 ))
sod = "ОШИБКА!!! в программе " + prn + ", "+PR+", "+", "+mesag+", "+", "+lin
D=MESSAGEBOX(sod, 48 )

check_stack()



IF D= 1 
	RETURN TO pr
ENDIF 

ENDPROC 


procedure check_stack
local laStack[ 1 ], lcStack
astackinfo(laStack)
lcStack = ""
for lnRow = alen(laStack,  1 )- 2   to  1  Step - 1 
	lcStack = lcStack + "Исп.метод:   (" + transform(laStack[lnRow, 2 ]) + ")      " +  transform(laStack[lnRow, 3 ]) + chr( 13 )+ chr( 10 ) + ;
						"Строка:      " + transform(laStack[lnRow, 5 ]) + chr( 13 ) + chr( 10 ) + ;			
						"Команда:     " + alltrim(transform(laStack[lnRow, 6 ])) + chr( 13 )+ chr( 10 ) + ;
						chr( 13 )+ chr( 10 )
endfor
messagebox(lcStack)
return 
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по PROGRAM()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]