| |
|
|
|
Beschreibung:
Searchpath sucht im angegebenen Verzeichnis nach einer Datei und gibt zurück, ob diese dort vorhanden ist. Mit Searchpath lässt sich der Dateiname aus einer Pfad + Dateiname-Kombination extrahieren.
Deklaration:
DEF SearchPath(6) !KERNEL32,SearchPathA
Parameter:
1.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der den zu durchsuchenden Pfad enthält. Es werden keine Unterverzeichnisse durchsucht. Ist dieser Parameter 0, wird in folgenden Verzeichnissen gesucht: => -Im Verzeichnis, aus dem das Programm geladen wurde. -Im aktuellen Verzeichnis. -Im Windows Systemverzeichnis. -Bei NT im 16 BIT Systemverzeichnis. -Im Windowsverzeichnis. -In den Verzeichnissen, die unter der Umgebungsvariable PATH aufgeführt sind. 2.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der den Dateinamen (ohne Erweiterung) enthält. 3.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der die Erweiterung der Datei (mit Punkt) enthält. 4.Parameter: Größe der Bereichsvariablen aus Parameter 5 (in Buchstaben). 5.Parameter: Bereichvariable, die den gefundenen Pfadnamen plus den Dateinamen empfängt. 6.Parameter: Bereichsvariable, die die Adresse des Dateinamens innerhalb des in Parameter 5 zurückgegebenen Strings empfängt.
Rückgabewert:
0 bei Misserfolg. Bei Erfolg die Länge des Strings in Parameter 5 ohne abschließendes Nullbyte.
Beispiele:
Declare Searchpath$,Filename$,Extension$,Size&,Buffer#,Pointer#,Fehler&,Point&
DEF SearchPath(6) !"KERNEL32","SearchPathA"
LET Searchpath$=$WINPATH
LET Filename$="NOTEPAD"
LET Extension$=".EXE"
Size&=255
DIM Buffer#,260
DIM Pointer#,4
Clear Buffer#
Clear Pointer#
Fehler&=@Searchpath(0,@addr(Filename$),@addr(Extension$),Size&,Buffer#,Pointer#)
Fehler&=@Searchpath(@addr(Searchpath$),@addr(Filename$),@addr(Extension$),Size&,Buffer#,Pointer#)
PRINT "Länge des Strings: "+@STR$(FEHLER&)
PRINT "Gefundene Datei: "+@String$(Buffer#,0)
Print "Adresse des Dateinamens: "+@str$(@Long(Pointer#,0))
LET POINT&=Buffer#
LET POINT&=@LONG(Pointer#,0)-POINT&
Print "Hier beginnt der Dateiname: "+@STR$(POINT&)
Print "Dateiname ohne Pfad: "+@String$(Buffer#,Point&)
Dispose Buffer#
Dispose Pointer#
waitkey
|
|
|
| |
|
|