Файл cenas2.prg не существует
Я пытался сделать это некоторое время, но я не могу понять, как. Я хочу вызвать процедуру из внешнего файла.prg в другой файл.prg.
Итак, для этого я делаю:
SET PROCEDURE TO cenas2.prg Additive \\ cenas2.prg is the filename with the procedure called myproc inside
Do myproc
Моя проблема, когда я запускаю его, я получаю сообщение об ошибке: Файл 'cenas2.prg' не существует.
Итак, я запустил следующий код:
WAIT WINDOW 'Path: ' + SET('PATH') + CHR(13)+CHR(10) + 'Default drive: ' + SET('Default') + CHR(13)+CHR(10) + 'Current directory: ' + CURDIR()
И я получил:
Дорожка:
Диск по умолчанию C:
Текущий каталог: \ PHC20CRP \
cenas2.prg находится внутри PHC20CRP, и когда я запускаю файл ("cenas2.prg"), он возвращает мне значение true, поэтому я не думаю, что имеет смысл возвращать мне файл, которого не существует, когда я пытаюсь установить процедуру. Может кто-нибудь мне помочь??
Спасибо
3 ответа
Уже обнаруживает проблему. Мне пришлось принудительно установить параметр внутри процедуры, чтобы он не выполнялся. Спасибо за вашу помощь!
Просто используйте полный путь:
set procedure to ("c:\PHC20CRP\cenas2.prg") additive
Вместо того, чтобы устанавливать процедуру и затем использовать процедуру, было бы безопаснее выполнить код без установки процедуры в. то есть:
do myProc In ("c:\PHC20CRP\cenas2.prg")
Я предпочитаю этот стиль, потому что я могу легко выполнять процедуры, которые называются одинаковыми в разных файлах процедур. При подходе "заданной процедуры", который будет выполняться, зависит от порядка создания и не предсказуемо.
Позвольте мне спросить вас об этом. Ваш cenas2.prg ЕДИНСТВЕННЫЙ МАРШРУТ? а не программный файл, который имеет МНОГИЕ процедуры и функции. Если это так, SET PROCEDURE TO не требуется, вы должны иметь возможность вызывать его напрямую, просто имея его как часть проекта.
Обычно файл "SET PROCEDURE" представляет собой набор подпрограмм в одном файле.prg, поэтому у вас нет десятков или даже сотен общих подпрограмм, которые раздувают вашу папку для разработки, например
*/ This is MyProcedureFile.prg
function oneFunc()
...
endfunc
procedure someOtherProc()
...
endproc
function specialTest()
...
endfunc
*/ End of this complete .prg
тогда у вас будет
установить процедуру к добавке MyProcedureFile
и все функции видны приложению. Если ваш файл.prg является единственной процедурой сам по себе, вам не нужна команда SET PROCEDURE TO.