2017-01-24 3 views
2

У меня есть процедура структуры, как это:Как проверить, включен ли файл?

<someprocedure.p> 
    <randomCode> 
    <INCLUDE standardIncludeFile.i> 
</someprocedure> 

standardIncludeFile.i -include файл может быть использован с любой процедурой файлов. Однако для этого требуются другие файлы include. F.ex. stantarderror.i и standardconstants.i.

Если someprocedure.p уже включил эти 2 файла, они не должны быть included в standardIncludeFile.i. Если это не так, они должны быть included в standardIncludeFile.i.

Могу ли я использовать DEFINED внутри standardIncludeFile.i, чтобы проверить, если эти .i -файлы уже included в someprocedure.p?

Если я использую INCLUDE в любом случае без каких-либо условий, редактор Eclipse Open-Edge дает мне настройки include once, но я не уверен, что это хороший способ. Во всяком случае, файлы скомпилированы на сервере для производства.

В настоящее время stantarderror.i или standardconstants.i не содержат каких-либо GLOBAL-DEFINED константы, поэтому я не могу проверить их таким образом с DEFINED.

ответ

5

В вашем incldue файл, сделать что-то вроде этого

&IF DEFINED (stantarderror) EQ 0 &THEN 
GLOBAL-DEFINE stantarderror stantarderror 


// actual code here 


&ENDIF