extern KADMOS_ERROR KADMOS_API GetPrivateFileName
(char *file_title, const char *filter, unsigned int mode,
const char *boxtext,const char *inifile, const char *section,
const char *entry);
file_titlefiltermodeOF_READ | Öffen nur zum Lesen. |
|---|---|
OF_CREATE | Erstellen und öffnen zum Schreiben. |
OF_PROMPT | Prompt des Dateinamens. |
OF_EXIST | Datei muss exisieren. |
boxtextinifilesectionentryRE_SUCCESS oder KADMOS-Fehlertyp.
Zur Vereinfachung unserer eigenen Arbeit haben wir uns eine Funktion GetPrivateFileName()
bereitgestellt, mit welcher sich auch die Beispielprogramme einfacher gestalten lassen. Diese Funktion ist in Anlehnung an die
Windows-Funktionen GetPrivateProfileString() und WritePrivateProfileString() gestaltet.
Findet sich in inifile unter section und entry ein Dateiname, der den unter Mode
gegebenen Anforderungen (OF_EXIST, OF_CREATE) genügt, so wird dieser Dateiname
unter file_title zurückgeliefert. Es ist dabei sicherzustellen, dass unter file_title genügend
Speicherplatz (_MAX_PATH) zur Verfügung steht. Ist in IniFile unter section
und entry noch kein Eintrag, jedoch unter file_title bereits ein Dateiname eingetragen,
so wird dieser geprüft, ob er den unter Mode gegebenen Anforderungen entspricht.
Bei OF_EXIST wird geprüft, ob die gegebene Datei existiert. Bei OF_CREATE wird geprüft, ob sich
eine derartige Datei erstellen lässt. Ist kein Dateiname angegeben oder eine der durch Mode gegebenen
Bedingungen nicht erfüllt, so wird im Dialog ein gültiger Dateiname angefordert. BoxText bildet dabei die
Anforderungs-Meldung für den Dialog. Wird der Dialog ohne gültigen Dateinamen vom Bediener abgebrochen, so gibt der
Funktionsaufruf den Wert RE_FILEERROR zurück, ansonsten den Wert RE_SUCCESS. Ist unter Mode
zusätzlich der Wert OF_PROMPT gesetzt, so wird in jedem Fall ein Dialog zur Eingabe eines
Dateinamens gestartet. Der gegebenenfalls in inifile unter section und entry oder
unter file_title vorgegebene Dateiname wird als Voreinstellung des Dialoges genutzt. Bei positiver Prüfung
des vorgegebenen oder eingegebenen Dateinamens wird dieser in der Inifile unter section
und entry abgelegt, die Funktion mit RE_SUCCESS beendet. GetPrivateFileName()
ist nur für Windows (auch für Consol-Applikationen) verfügbar.