Avatar billede Slettet bruger
19. maj 2006 - 13:19 Der er 6 kommentarer og
1 løsning

Collapse på Array

Kender noget nogle eksempler på hvordan man, mere eller mindre elegant kan få et Array til at "klappe sammen" når man sletter et element.

Altså: Når et element slettes på plads 3, så skal plads 3 ikke være tom.... plads 4 skal blive til plads 3 og så fremdeles.

Lige som en Vector i Java....
Avatar billede tofte Juniormester
19. maj 2006 - 13:28 #1
Der er kun den uelegante måde. At lave et array som er en plads kortere og så flytte alle værdierne over i det nye - med undtagelse af den plads som er slettet. Jeg har ikke kunne finde noget, men jeg er ret sikker på, at der er nogle som har lavet en ArrayList som man kender det fra java i asp. Det er bare lige at finde den. Ellers må man jo selv igang.
Avatar billede tofte Juniormester
19. maj 2006 - 14:20 #2
Har lige fundet noget gammelt kode:
Avatar billede tofte Juniormester
19. maj 2006 - 14:20 #3
Class ArrayList
  Private myList()
  Private ArrLength 

  Private Sub Class_Initialize()
    ArrLength=0
    ReDim myList(ArrLength)
  End Sub

  Public Sub Add(element)
    ArrLength=ArrLength+1
    ReDim Preserve myList(length)
    myList(ArrLength-1)=element
  End Sub
 
  Public Property Get Length
    Length = ArrLength
  End Property
  Public Sub Remove(pos)
    If pos<=ArrLength and pos>0 Then
        Dim tmpArray(),a,b
        ReDim tmpArray(ArrLength)
        For a = LBound(myList) To UBound(myList)
            tmpArray(a)=myList(a)
        Next
        ArrLength=ArrLength-1
        ReDim myList(ArrLength)
        b=0
        For a = 1 to ArrLength+1
            if a<>pos then
                myList(b)=tmpArray(a-1)
                b=b+1
            end if
        Next
    End If
  End Sub

  Public Function Item(pos)
    If pos<=ArrLength And pos>0 Then
        Item = myList(pos-1)
    End If
  End Function

End Class

Set ar = new ArrayList
ar.add("test1")
ar.add("test2")
ar.add("test3")
For a=1 To ar.Length
    msgBox ar.Item(a)
Next
ar.Remove(2)
Avatar billede Slettet bruger
19. maj 2006 - 14:43 #4
Den vil jeg gerne give point for....
Avatar billede tofte Juniormester
19. maj 2006 - 14:47 #5
Så kommer der et svar. Den er ret nem at bruge og den kan nemt udbygges. Jeg hader generelt at arbejde med arrays i asp, de er lidt tunge at danse med.
Avatar billede tofte Juniormester
19. maj 2006 - 14:52 #6
Så derfor er en arraylist altid god at have.
Avatar billede Slettet bruger
19. maj 2006 - 15:28 #7
100% enig :) Og mange tak!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester