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 .