Register
fnam bezeichnung|typ
Eine Dateiauswahl-Box nach Art von Windows wird präsentiert.
bezeichnung steht dann in der Zeile unter dem Eingabefeld der Box, typ ist eine Angabe wie z.B.
P-*?PR oder c:\\allegro\\*.*. Dadurch wird gesteuert, was für Dateinamen überhaupt gezeigt werden und evtl. zugeich auf welchem Verzeichnis. Fehlt dies, werden alle gezeigt. Mit if no kann man checken, ob nichts ausgewählt wurde. Wenn ein Name ausgewählt wurde, steht er anschließend in der iV , und zwar als kompletter Pfadname. Anschließend kann man z.B. sofort mit open diese Datei öffnen lassen.
Tip: Es können zwei oder mehr Typen angegeben werden, durch ; getrennt, z.B. *.flx;*inc
Wenn dabei bestimmtes Verzeichnis gewünscht, dann z.B. c:\\allegro\\flex\*.flx;*inc
Achtung: Ein Verzeichnis als solches kann man auf diese Weise nicht auswählen lassen. Dafür eignen sich die folgenden Sonderbefehle:
fnam |typ
fnam >typ
Alle zu typ passenden Dateinamen werden in die iV geschrieben, getrennt durch | ,
bzw. bei > in die Ausgabedatei, jeweils als neue Zeile.
Sonderfall Ordnerwahl:
Wenn zwischen | bzw. > und typ ein Punkt steht, werden nur die Namen von Verzeichnissen ausgegeben, sonst nur die Namen von Dateien.
Die erste Form eignet sich für die Anzeige in einer select-Box (siehe Beispiele 2+3),
die zweite als ViewListe (siehe Beispiel 4). Die Form ist dann diese:
Änderungsdatum -- Dateiname -- Dateigröße
Wenn hinter fnam nichts steht, wird der Inhalt der iV genommen, d.h. darin muß als erstes Zeichen | bzw. > stehen.
Mit if no kann man checken, ob es keine solchen Dateien gibt, mit if cancel , ob es zu viele sind. Die Grenze bei | ist aus internen Gründen eine Gesamtlänge von 100.000 Zeichen.
Gleichwertig ist die Alternative, der Befehl dir typ, nur daß dabei ein ¶ das Trennzeichen ist (Code 20).
Sonderfall: Dateinamen umwandeln von lang in kurz und umgekehrt (DOS-Programme vertragen keine langen Namen)
Beispiel: Ausprobieren
Welche Unterverzeichnisse hängen an meinem ProgDir?
x fnam |.*\ins _ _^M^J_\show IV
fnam S longname
fnam L shortname
Damit kann man einen langen Dateinamen in einen kurzen umwandeln bzw. umgekehrt. Das Ergebnis steht jeweils in der iV.
Wenn es die Datei nicht gibt, kann man dies mit if no abchecken.
Steht der Dateiname z.B. in #uxy, schreibt man var "S " #uxy\fnam bzw. var "L " #uxy\fnam .
Hinweis: Es gibt noch andere Möglichkeiten, Dateiauswahlen zu präsentieren: mit ViewListen und mit aresqa-Fenster. Beispiele dafür sieht man, wenn man die Übersicht der Parameterdateien benutzt bzw. wenn man (ab V25.5) im Schreibfeld einfach mal ein d eingibt.
Beispiele:
1. Es sollen die auf dem Datenverzeichnis liegenden ViewListen angezeigt werden. Die ausgewählte Datei soll angezeigt werden.
var "ViewListen|" D "*.vw"
fnam
if "" end
View
Der "var"-Befehl schreibt zunächst in die iV: "ViewListen|<Datenverz.>\*.vw"
"fnam" zeigt die Dateien an, und der ausgewählte Name steht anschließend in der iV,
wo er von dem Befehl "View" aufgegriffen wird.
2. Die auf dem Datenverzeichnis liegenden Export-Parameterdateien zum A-Schema, also Dateien vom Typ *.ap? sollen gezeigt und als select-Liste zur Auswahl angeboten werden: (Diesen Abschnitt kann man in jeden FLEX einbauen)
var "|" D "*.ap?"
fnam
if no end
if cancel mes Zu viele!
ins #uvB
var "Parameterdateien=" #uvB
select
ins #uvF
var "Ihre Wahl ist: " #uvF
3. Die am Programmverzeichnis hängenden Unterverzeichnisse sollen als select -Liste gezeigt werden:
(Auch diesen Abschnitt kann man in jeden FLEX einbauen)
var "|." P "*"
fnam
if no end
ins #uvB
var "Verzeichnisse=" #uvB
select
if no end
ins #uvF
mit #uvF kann man nun alles machen, was man will
var "Ihre Wahl ist: " #uvF
mes
4. Die am Programmverzeichnis hängenden Unterverzeichnisse sollen als ViewListe gezeigt werden:
(Auch diesen Abschnitt kann man in jeden FLEX einbauen)
open x pfiles.vw
var ">." P "*"
fnam
clo x
if no end
View pfiles.vw
if "" end
ins #uvF
clo v
var "Ihre Wahl ist: " #uvF
mes
Die Anwendung wird ausführlich demonstriert in fnam.flx .