| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Datei suchen und Dateinamen extrahieren
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:
L1(Param.1 Longint ) 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.
L2(Param.2 Longint ) Adresse eines Strings oder Bereichsvariable mit einem String,
der den Dateinamen (ohne Erweiterung) enthält.
L3(Param.3 Longint ) Adresse eines Strings oder Bereichsvariable mit einem String,
der die Erweiterung der Datei (mit Punkt) enthält.
L4(Param.4 Longint ) Größe der Bereichsvariablen aus Parameter 5 (in Buchstaben).
Sollte mindestends der MAX_PATH Länge des jeweiligen Systems entsprechen (z. B. 256 Windows 98)
L5(Param.5 Longint ) Bereichvariable, die den gefundenen Pfadnamen plus den Dateinamen empfängt.
L6(Param.6 Longint ) Bereichsvariable, die die Adresse des Dateinamens innerhalb des in Parameter 5
zurückgegebenen Strings empfängt.
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
|
|
|
| |
|
|