ReadDir,FileType in ner Schleife

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ozzi789

Betreff: ReadDir,FileType in ner Schleife

BeitragMo, Dez 10, 2007 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Dat Problem ist immer noch mit diesem "Explorer".

Ich will C:\ dursuchen . Das geht

Die weiteren Ordner durchforsten. Geht nicht

Mit diesem Code geht nur manchmal .. (in bestimmten Ordner ka wieso ?)

Code: [AUSKLAPPEN]


If auswahl$=("Explore")

festp$= Input ("Choose Harddrive, Now on: "+festp$)


folder$= festp$
.mi
myDir=ReadDir(folder$)


Repeat

file$=NextFile$(myDir)


If file$="" Then Exit


If FileType(folder$+"\"+file$) = 2 Then

Print "Folder:" + file$
Else
Print "File:" + file$
End If
Forever

WaitKey

folder$= Input ("Folder???")
Goto mi


CloseDir myDir
WaitKey
EndIf


Die Sache ist das er mit dem Folder nicht zu recht kommt beim 2 Durchlauf...
D.H man müsste ihm immer den alten Pfad angeben.
Doch ich raffs einfach nicht mehr :/

Danke viel mals
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Dez 10, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das ganze in eine Funktion packen und rekursiv aufrufen/programmieren. Dazu gibt es genügent Code, suche mal danach.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ozzi789

BeitragMo, Dez 10, 2007 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst ich soll rekursiv Programmieren suchen ?

MFG
OZ Very Happy
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Dez 10, 2007 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Rekursive Programmstruktur bedeutet zum Beispiel: Eine Funktion die mit einem vorgegebenen Startparameter ( zum Beispiel: ''C:\'' ) aufgerufen wird. Wird ein Verzeichnis gefunden, so ruft sich die Funktion selbst mit dem entsprechendem neuem Parameter auf ( zum Beispiel: "C:\Windows" ). Das geht immer so weiter, bis alle Verzeichnisse gefunden und aufgelistet werden. Werden Dateien gefunden, so können diese entsprechend verarbeitet werden. Zum Beispiel nach .mp3 -Dateien suchen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ozzi789

BeitragMo, Dez 10, 2007 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm das gibt schon Sinn jedoch kann ich das ned in BB verwirklichen ...
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

The_Nici

BeitragMo, Dez 10, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann liegts nicht an BB sondern an dir.
Ohne Fleiss kein Preis. Probiere einfach mal aus. UND ZWAR OHNE GOTO!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Dez 10, 2007 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du überhaupt danach gesucht? Für mein Dreamplayer bentze ich dazu nun zwei Funktionen, weil ich den DirScanner auf für andere Dateiendungen und Funktionen benutze. Das geht aber auch nur mit dem Dirscanner alleine. Hier ein Codeausschnitt aus Dreamplayer 2.5

Code: [AUSKLAPPEN]
;Musik-Dateien-Suchen
Function DirScaner(FPfad$)
   Local RDID,Datei$=""
   RDID=ReadDir(FPfad$)
   Repeat
      Datei$=Lower(NextFile$(RDID))
      If Datei$<>"." Then
         If Datei$<>".." Then
            If Datei$="" Then Exit
            If FileType(FPfad$+"\"+Datei$)=2 Then DirScaner(FPfad$+"\"+Datei$)
            If FileType(FPfad$+"\"+Datei$)=1 Then LoadAudio(FPfad+"\"+Datei)
         End If
      End If
   Forever
   CloseDir RDID
End Function




;Neue-Datei-Laden
Function LoadAudio(FFile$)
   Local Extension=0
   If TrackAnz<MAXTRACK Then
      ;MP3, MP2, MP1, OGG, WAV, AIFF
      If Lower$(Right$(FFile,4))=".mp3" Then Extension=1
      If Lower$(Right$(FFile,4))=".ogg" Then Extension=1
      If Lower$(Right$(FFile,4))=".wav" Then Extension=1
      If Extension=1 Then
         TrackAnz=TrackAnz+1
         TextAlpha=2
         Pause=0
         Info1$=""
         Info2$=TrackPos+"/"+TrackAnz
         TrackList$(TrackAnz)=FFile
      End If
   End If
End Function
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

BladeRunner

Moderator

BeitragMo, Dez 10, 2007 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
simples rekursives Beispiel:

Code: [AUSKLAPPEN]
function step_in(i)
    print "ich bin die "+i
    if i >1 then
        step_in(i-1)
    end if
end function

step_in(10)
Waitkey()
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ozzi789

BeitragMo, Dez 10, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetz schaff ich das... ich hoffs xD

Danke

@The Nici

Oki ich versuchs Very Happy

Edit :

Entweder ich hab zu wenig schlaf oda ich bin dumm

Bitte schreibt mir den Code, ich weiss ich sollt selber lernen doch ich schnalls ned Sad
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group