Возвращается имя файла выполняемой в настоящий момент программы.Вы можете использовать SYS(16) при обработке Ошибок.

SYS(16 [, nProgramLevel])

Параметры

nProgramLevel

Определяет уровень вложенности, на котором выполняется программный модуль. Эта величина может изменяться от 1 до максимально возможного уровня вложенности. См. дополнительно об допустимых уровнях вложенности команды DO раздел: Системные возможности Visual FoxPro.

Если параметр nProgramLevel = 0 или = 1, функция SYS(16) возвращает имя Главного (стартового) модуля (the program first executed). Если параметр отсутствует, то возвращается имя модуля, выполняемого на текущем уровне. Пустая строка возвращается для уровня вложенности nProgramLevel, большего чем текущий уровень.

Expand imageВозвращаемое значение

Символьное

Expand imageКомментарии

Функция SYS(16) аналогична функции PROGRAM( ), за исключением того, что SYS(16) возвращает полное имя программного модуля  (FullPath). Если выполняемая программа является частью приложения  (.app), функция SYS(16) возвращает только имя программного модуля, без полного пути. SYS(16) возвращает имя выполняемого файла  (.exe); в то время как PROGRAM( ) возвращает только имя. Если выполняется модуль из процедурного файла, то функция SYS(16) возвращает имя программного модуля и имя файла, в котором выполняемый модуль находится.

Expand imageПример

В следующем примере показаны программные модули, выполняемые на различных уровнях вложенности:

  CopyCode imageКопировать Код
STORE 1 TO gnX
DO WHILE LEN(SYS(16,gnX)) != 0
? SYS(16,gnX)
STORE gnX+1 TO gnX
ENDDO

Expand imageСм. также