Zum Hauptinhalt springen

FsiOpen

Mit dieser Funktion wird die externe Datei (alpha1) geöffnet. In (alpha1) kann der vollständige Pfad angegeben werden. In (int2) muss mindestens eine der _FsiAcs...-Optionen angegeben werden, da ansonsten keine Operationen auf der Datei durchgeführt werden können.

Außerdem sollte unbedingt eine der _FsiDeny...-Optionen benutzt werden, um die Multiuser-Fähigkeit sicherzustellen.

Folgende Optionen können in (int2) angegeben werden:

Die folgenden Optionen (int2) gelten nur für Windows:

Die folgenden Optionen (int2) gelten nur für UNIX:

Das Resultat ist größer Null, wenn die Datei erfolgreich geöffnet wurde. Bei einem negativen Resultat ist ein Fehler aufgetreten. Der Fehlerwert des Betriebssystems kann über die Eigenschaft FsiError abgefragt werden. Wurde die Option _FsiCreateNew angegeben und die Datei existiert bereits, ist das Resultat _ErrFsiExists.

Beispiele:

tHandle # FsiOpen('\Test.asc', _FsiStdRead);
if (tHandle > 0)
{
...
tHandle->FsiClose();
}
else
{
// Fehlerbehandlung
...
}
// Liste aller Dateien eines Verzeichnisses erstellen
sub WriteFileList
(
aPath : alpha(4096);
)

local
{
tHdlDir : handle;
tName : alpha(4096);
tFile : handle;
tTestFile : handle;
}

{
tHdlDir # FsiDirOpen(aPath + '\*.txt', _FsiNameUtf8);
tFile # FsiOpen(aPath + '\files.txt', _FsiStdWrite | _FsiPure);

tName # tHdlDir->FsiDirRead();

while (tName != '')
{
tTestFile # FsiOpen(aPath + '\' + tName, _FsiStdRead | _FsiNameUtf8);

if (tTestFile > 0)
{
tName # tName + ' -> Open OK';
tTestFile->FsiClose();
}
else
tName # tName + ' -> Open FAIL';

tFile->FsiWrite(tName);
tFile->FsiWrite(StrChar(13) + StrChar(10));

tName # tHdlDir->FsiDirRead();
}

tHdlDir->FsiDirClose();
tFile->FsiClose();
}