Eigengeschreven Push functie voor Arrays

Status
Niet open voor verdere reacties.

beanbag

Gebruiker
Lid geworden
25 apr 2009
Berichten
54
Code:
Public Sub Push(ByRef aArray() As Object, ByVal oContent As Object)
        Dim sLength As Short = aArray.Length
        ReDim aArray(sLength)
        aArray(sLength) = oContent
    End Sub

Code:
Public Sub AddFolder(byval sFolder As String)
        Dim aTempFiles() As Object = New String() {}
        Dim sCount As Short
        sCount = My.Computer.FileSystem.GetFiles(sFolder).Count
        MsgBox(sCount)
        Dim sStop As Short = sCount - 1
        For i = 0 To sStop
            Push(aTempFiles, My.Computer.FileSystem.GetFiles(sFolder)(i))
            i += 1
        Next
        MsgBox(aTempFiles.Length)
        Push(aFiles, aTempFiles)
    End Sub

De bedoeling in dit script is een array aTempFiles te creëren die van de doorgestuurde folder alle files bevat.
Deze Array vervolgens aan een andere array toe te voegen die alle files over alle folders bevat.
Het probleem zit hem bij de controle van de lengte van de array aTempFiles die is namelijk kleiner dan sCount en zou nochtans even groot moeten zijn.
Meer concreet de eerste messageBox geeft mij 395 (controle van de map zelf vie properties geeft ook aan dat er 395 bestanden in mijn muziekmap zitten)
de tweede messagebox die de lengte van aTempFiles toont geeft echter slechts 198.

Het lijkt me niet toevallig dat dit op afronding na de helft is van die 395.

De vraag:
Welke fout in mijn script zorgt ervoor dat niet alle files in de array komen?
 
blijkbaar is de i+=1 in de loop redundant, ervoor zorgende dat i elke loop met 2 stijgt !
 
Uhm, nee, het zit zo: een loop laat zn variabele automatisch stijgen:
Code:
for i = 0 to 10
   msgbox i
next i
is een normale loop. Door er nog eens extra
Code:
i += 1
bij te zetten, wordt het dus 2x verghoogt.
 
Je kan hier denk ik beter met een lijst werken. kan je gewoon lijst.add(item) doen. Gaat zeer wss sneller dan je eigen implementatie :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan