Man darf sich doch auch mal vertun.
Natürlich meinte ich %eof().

Da ich den Status meist direkt nach der Operation benötige trage ich auch den Dateinamen nicht ein (da SEU noch kein IntelliSense unterstützt ).

Brauche ich den Status später noch einmal, weise ich ihn einer Variablen "MyFileStat = %eof();" zu, da ich ja nicht immer sicher sein kann, ob ich nicht durch eine weitere Dateioperation diesen schon wieder verändert habe.

Übrigens verwende ich häufiger
setll (K1:K2:*hival) Myfile;
als setgt, so dass mir %equal auch nicht hilft.
Das Abfragen spare ich mir da grundsätzlich.
Wenn ich mit Mandantensoftware arbeite, ist der Status selten ausreichend, ich benötige den reade/readpe auf jeden Fall.

Um die Existenz, ohne tatsächliches Lesen zu prüfen, gehe ich in SQL den Weg:
exec sql select count(*) into : MyCount
from MyFile where ....;
if MyCount>*zero;
:
endif;