        $4E SFIRST



        int Fsfirst( char *fnam, int attr );



Mit der SFIRST-Funktion kann berprft werden, ob eine Datei mit dem 
angegebenen Namen im Directory vorhanden ist. Wird eine gleichnamige 
Datei gefunden, so erhlt man den Filenamen, das File-Attribut, Datum 
und Uhrzeit der Dateierstellung und die Gre der Datei in Bytes 
zurck. Die gelieferte Information wird von GEMDOS im DTA-Buffer 
abgelegt, dessen Adresse ja mit der SETDTAFSETDTA-Funktion bestimmt werden 
kann.



Besonders angenehm ist die Tatsache, da der Filename nicht 
vollstndig eingegeben werden mu. Einzelne Zeichen im Filenamen 
knnen gegen ein Fragezeichen '?' ausgetauscht werden, aber auch 
ganze Buchstabengruppen knnen durch einen '*' ersetzt werden. In der 
extremen Form wrde ein Filename auf die Zeichenkette '*.*' 
reduziert. In diesem Fall wrde die erste Datei im Directory den 
Anforderungen gengen und der Filename mit den weiteren Informationen 
im DTA-Buffer erscheinen.



Auer dem Filenamen mu dem SFIRST-Aufruf noch ein Such-Attribut 
mitgegeben werden. Die mglichen Parameter des Attributs entsprechen 
denen, die bei der CHMODFATTRIB-Funktion einer Datei gegeben werden knnen:



  $00 = Normaler Zugriff, lesen/schreiben

  $01 = Normaler Zugriff, schreibgeschtzt

  $02 = Verborgener Eintrag (wird im ST-Desktop ignoriert)

  $04 = Verborgener System-Eintrag (wie $02 ignoriert)

  $08 = Volume Label, Disketten-Name

  $10 = Subdirectory

  $20 = Datei wurde beschrieben und geschlossen



Beim Suchen nach Dateien gelten die folgenden Regeln:

Ist Attribut-Wort Null, so werden nur normale Dateien erkannt. 
System-Dateien oder Subdirectorys werden nicht erkannt.

System-Files, verborgene Dateien und Subdirectorys werden gefunden, 
wenn die entsprechenden Attribut-Bits gesetzt sind. Volume-Labels 
werden aber dann weiterhin nicht erkannt. Um das Volume-Label zu 
erhalten, mu diese Option ausrcklich im Attribut gesetzt werden. 
Alle anderen Dateien werden dann nicht durchsucht.



Nach dem Aufruf erhlt man in D0 den Wert Null, wenn ein 
entsprechendes File gefunden wurde. In diesem Fall wird der 44 Bytes 
groe DTA-Buffer wie folgt aufgebaut:



 Byte  0 - 20  fr GEMDOS reserviert.

 Byte 21       File Attribut

 Byte 22 - 23  Uhrzeit der Dateierstellung

 Byte 24 - 25  Datum der Dateierstellung

 Byte 26 - 29  Dateigre in Bytes

 Byte 30 - 43  Name und Extension der gefundenen Datei



Wurde jedoch keine dem angegebenen Suchstring entsprechende Datei 
gefunden, so erhlt man die Fehlermeldung -33, File Not Found.



----------------------------------------------------------------------
PEA     dta             * DTA-Buffer einrichten

MOVE.W  #1A,-(SP)       * Funktionsnummer SETDTA

TRAP    #1

ADDQ.L  #6,SP

MOVE.W  #attrib,-(SP)   * Attribut-Wert

MOVE.L  #filnam,-(SP)   * Filename, nach dem gesucht wird

MOVE.W  #$4E,-(SP)      * Funktionsnummer Fsfirst

TRAP    #1

ADDQ.L  #8,SP

TST     D0              * Datei gefunden ?

BNE     notfound        * scheinbar nicht

----------------------------------------------------------------------
