21. juli 2002 - 11:48Der er
5 kommentarer og 1 løsning
Dynamisk array
Et array kan f.eks. dimensioneres i 3 (om mange flere dimensioner) melodi (20,12,500)
Jeg har 500 grammofonplader med indtil 12 skæringer og op til 20 oplysninger om hver skæring. Det kan jeg indlæse i et array om opnå lynhurtig søgning, uden at læse fra disken igen.
Jeg mener der kan være 60 dimensioner i et array, men hvad med dynamisk tildeling, kan det lade sig gøre i mere end én dimension i VB5?
Ja, du kan redimme alle de dimensioner det kan være:
Dim melodi() 'den oprindelige (måske globale) erklæring ReDim melodi(500, 12, 20) -Du kan også gøre det med variable: ReDim melodi(x, y, z) -eller med increment: ReDim melodi(500, 12, Ubound(melodi, 3) + 1)
Hvis du ønsker at bevare indholdet i arrayet skal anvendes Preserve, MEN -hvis du anvender Preserve kan du KUN redimme UpperBound i den sidste dimension.
F.eks. hvis du har melodi(500, 12, 20), så kan du kun ReDim Preserve f.eks. til : ReDim Preserve(500, 12, 25). Hvis du forsøger at ændre de andre dimensioner eller LowerBound på den sidste, så får du en runtime error, når du anvender keywordet Preserve.
Hovsa, jeg havde ikke lige set at du har VB5. Mine kommenterer/svar skal tages med forbehold!! Jeg kører selv VB6, og mine svar er med udgangspunkt heri.
tjacob>> Tak for links. Egentlig var spørgsmålet en udløber af et andet spørgsmål, hvor kedde og jeg fik 'for mange' point. Men dette med omfordeling af point løser vi på anden måde, og spørgsmålet her er selvfølgelig reelt nok. På MS' side står ikke versions-nr. Men jeg prøver at pusle lidt med det. Mit (lille) problem er at jeg ikke vil dimensionere et array større end påkrævet for ikke at spise ram'en op. Men mine programmer kører hos andre og jeg kan ikke vide hvor mange poster de evt. opretter, samt hvorledes deres maskiner er bestykket med hukommelse.
Arrays i flere dimensioner, hmpf.... Min måde ville være at dimme en array variable som din egen type. Public Type tArrPars lpsz1 As String lpsz2 As String lpsz3 As String osv... End Type
Dim sArr() As tArrPars.......
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.