Hallo,
ich habe folgenden Code :
FUNCTION LoadGame:
LOCAL anz
LOCAL feld$[]
SETFONT 3
anz = GETFILELIST("sav\\*.sav", feld$[])
PRINT "gefunden : " + anz, 20,20
SHOWSCREEN
MOUSEWAIT
ENDFUNCTIONWenn ich es jetzt übersetze kommt folgende Fehlerausschrift :
compiling:
C:/DOCUME~1/jonsc00h/LOCALS~1/Temp/glbasic/gpc_temp8.cpp: In function `DGInt __GLBASIC__::LoadGame()':
C:/DOCUME~1/jonsc00h/LOCALS~1/Temp/glbasic/gpc_temp8.cpp:198: error: `feld$' undeclared (first use this function)
C:/DOCUME~1/jonsc00h/LOCALS~1/Temp/glbasic/gpc_temp8.cpp:198: error: (Each undeclared identifier is reported only once for each function it appears in.)
C:/DOCUME~1/jonsc00h/LOCALS~1/Temp/glbasic/gpc_temp8.cpp:198: error: expected primary-expression before ']' token
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren
Was habe ich falsch gemacht ??
Danke und Gruß Heiko
PS: Meine GLBasic Version ist 4.237
Statt "\\" immer "/" verwenden für Unterordner. Ich bin mir nicht sicher, ob das bei GetFileList so geht, oder ob Du mit SETCURRENTDIR() arbeiten musst.
Ist schon lang' her ;)
also ich mach sowas mit SETCURRENTDIR() !
dann brauchst du nurnoch so machen:
FUNCTION LoadGame:
LOCAL anz
LOCAL feld$[]
SETFONT 3
anz = GETFILELIST("*.sav", feld$[])
PRINT "gefunden : " + anz, 20,20
SHOWSCREEN
MOUSEWAIT
ENDFUNCTION
Hallo Gernot,
danke genau das war der Fehler , mit den "//" geht es jetzt.
Da war die Compilerauschrift aber arg verwirrent.
Danke und Gruß Heiko
Hallo,
wenn ich jetzt folgendes mache:
anz = GETFILELIST("*.sav", feld$[])
dann stehen in feld$[] nicht nur die Dateien drin, sondern auch Verzeichnisse und "." + ".."
Wie bekomme ich jetzt wirlklich nur die Dateien raus, ohne Verzeichnisse ??
Stehen die Verzeichnisse IMMER an erster Stelle ??
Wenn ja kann man diese dann überspringen.
Gruß Heiko
Schau doch mal in die Hilfe :D
anz = ein kodierter Wert:
anz_ordner = INTEGER(anz/0x10000)
anz_dateien=MOD(anz, 0x10000)also - hohes WORD (2 byte) für anzahl der Ordner, niedriges WORD für Anzahl der Dateien.
Die Ordner kommen im feld zuerst.
Will man die Ordner rauswerfen, macht man:
FOR i=1 TO INTEGER(anz/0x10000)
DIMDEL feld$[], 0
NEXT
anz = LEN(feld$[])Du wirfst also anz_ordner mal den ersten Eintrag raus, die unteren rutschen nach.
Hallo Gernot,
die Vorgehensweise war mir schon klar.
Aber :
- warum kommen die Verzeichnisse mit, wenn ich als Maske "*.sav" angebe
- stehen die Verzeichnisse IMMER an ertser Stelle
Gruß Heiko
Alle Verzeichnisse, immer. Verzeichnisse immer oben. Ja.
nimm den String in dem Array und "delete" die Currentdir raus...
So habs ich glaub mal gemacht!