AW: Feld übergeben ohjemmine viele Fragen...
09.10.2003 13:25:38
Reinhard
Ho golem,
ich hab mal Hajos Code so verändert dass beide Subs angesprochen werden wenn du Dateiliste() startest.
Ja, es wird bubblesort oder was ähnliches was sich selbst aufruft um etwas zu sortieren.
Dir(c:\*.exe) liefert die erste datei mit .exe Endung, weitere Dir(), die nächsten .exe.
Siehe Hilfe zu dir.
Verzeichnis() *hmmh* DateiListe() wäre ggfs sprechender gewesen.
Die von dir erwähnte For-shleife listet nacheinander alle gefunden dateien auf.
Gruß
reinhard
Sub Dateiliste()
Dim Verzeichnis() As String
Dim Anzahl As Integer
Dim I As Integer
Dim strVerzeichnis As String
Dim StrDatei As String
Dim StrTyp As String
Dim Dateiname As String
Anzahl = 0
' Liste erstellen
strVerzeichnis = "d:\eigene dateien\"
StrTyp = "*.xls"
Dateiname = Dir(strVerzeichnis & StrTyp)
I = 3
Do While Dateiname <> ""
Anzahl = Anzahl + 1
ReDim Preserve Verzeichnis(1 To Anzahl)
Verzeichnis(Anzahl) = Dateiname
Dateiname = Dir
Loop
For I = Anzahl To 1 Step -1
'MsgBox Verzeichnis(I)
Cells(I, 1) = Verzeichnis(I)
Next I
Sort_Z_A Verzeichnis, LBound(Verzeichnis), UBound(Verzeichnis)
For I = Anzahl To 1 Step -1
'MsgBox Verzeichnis(I)
Cells(I, 5) = Verzeichnis(I)
Next I
End Sub
Sub Sort_Z_A(SortArray, L, R)
' sortieren von Z bis A
' von GerdZ Herber.de
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) < x And I < R)
I = I + 1
Wend
While (x < SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort_Z_A(SortArray, L, J)
If (I < R) Then Call Sort_Z_A(SortArray, I, R)
End Sub