DEFINITION MODULE Filename; (* Hans Endl 5. 5. 87 *) (* Version fr Atari *) TYPE Path = ARRAY [0..63] OF CHAR; Name = ARRAY [0..07] OF CHAR; Extension = ARRAY [0..02] OF CHAR; filespec = ARRAY [0..13] OF CHAR; (* Name und Extension *) fullname = ARRAY [0..79] OF CHAR; filename = RECORD drv: CHAR; path: Path; name: Name; ext: Extension; END; VAR empty: filename; (* Filename aus leeren Elementen *) PROCEDURE compose (VAR n, d: filename; VAR s: ARRAY OF CHAR); (* Setzt aus dem Filenamenrecord "n" den Filenamen "s" zusammen, der keine Leerzeichen enth„lt. Namensteile, die in "n" nicht besetzt sind, werden aus "d" ber- nommen. Sind sie auch in "d" nicht enthalten, ent- fallen sie. *) PROCEDURE getspec (VAR n: filename; VAR s: ARRAY OF CHAR); (* Extrahiert aus dem Filenamenrecord "n" den Namen und die Extension und fgt dazwischen einen Punkt ein, um das richtige Format fr Suchoperationen mit SFirst zu erhalten. *) PROCEDURE parse (VAR s: ARRAY OF CHAR; VAR n: filename); (* Analysiert den Filenamen "s" auf seine Bestandteile und tr„gt sie in den Filenamenrecord "n" ein. *) PROCEDURE ClearFilename (VAR fn: filename); (* L”scht alle Elemente eine Filenamens *) PROCEDURE GetDriveAndPath (VAR fn: filename); (* Besetzt "fn.drv" und "fn.path" mit den aktuellen Werten von GEMDOS *) PROCEDURE SelectFilename (VAR mask, name: filename; VAR exit: BOOLEAN); (* Erzeugt eine Fileselectorbox mit den Elementen aus "mask". Nicht besetzte Elemente von "mask" werden durch den aktuellen GEMDOS-Pfad und "*.*" ersetzt. Eine Voreinstellung eines Namens kann in "name.name" und "name.ext" bergeben werden. Nach dem Aufruf enth„lt "name" alle Elemente des Pfadnamens der ausgew„hlten Datei. *) END Filename.