Avatar billede jsc Nybegynder
30. juli 2006 - 13:57 Der er 9 kommentarer og
1 løsning

skille array ad

Hej Eksperter


Jeg skal skille mit array ad... sådan set ikke så svært, men jeg vil gerne lave et nyt array for hver værdi, som jeg sorterer fra.
eksempel:
array = kurt, kurt, kurt, kurt, martin, martin, martin, georg, Erik, Erik, Erik"

Jeg har så lavet en if-then-else, hvor jeg sorterer dem fra hinanden. i sætningen vil jeg så lave et nyt array for hver navn, som:
Person(1) = "Kurt, Kurt, Kurt, Kurt"
Person(2) = "martin......


mit problem er bare at jeg ikke ved hvor mange navne der er og hvor mange der er ialt og hvad navnene er - alt skal være variabelt - så hvordan laver jeg et variabelt antal "person()" arrays, så de alle er delt op i hver sit og så jeg kan tage dem fra en ende af?

/jsc
Avatar billede nielle Nybegynder
30. juli 2006 - 14:31 #1
I dit eksempel ligger navnene pænt ordnet - alle martin'erne ligger efter hinanden. Vi dette altid være tilfældetr, eller vil navnene kunne væree blandet sammen?
Avatar billede jsc Nybegynder
30. juli 2006 - 14:36 #2
de kommer i orden - måske ikke lige i den orden, men de ens kommer efter hinanden...
Avatar billede jsc Nybegynder
30. juli 2006 - 14:37 #3
det er vel også ligemeget, når jeg ville have gjort det sådan:

            For e = 0 to (Ubound(personer)-Lbound(personer))
            For r = 0 to (Ubound(temp2)-Lbound(temp2))

            if personer(e) = temp2(r) then
            person(e) = person(e) = temp2(r) & ","
            end if

            Next
            Next
Avatar billede jsc Nybegynder
30. juli 2006 - 14:38 #4
...men sådan kan man ikke :(
Avatar billede nielle Nybegynder
30. juli 2006 - 14:51 #5
Et bud:

' Splitter først navnene:

navneStr = "kurt, kurt, kurt, kurt, martin, martin, martin, georg, Erik, Erik, Erik"
navneStrArray = Split(navneStr, ", ")


' Tæller navnene:

antal = 0
prevNavn = ""
For idx = LBound(navneStrArray) To UBound(navneStrArray)
    navn = navneStrArray(idx)
    If navn <> prevNavn Then
        antal = antal + 1
        prevNavn = navn
    End If
Next


' Dimensionere det nye array:

Dim Person(antal-1)


' Tildeler værdierne til det nye array:

antal = 0
prevNavn = ""
For idx = LBound(navneStrArray) To UBound(navneStrArray)
    navn = navneStrArray(idx)
    If navn <> prevNavn Then
        antal = antal + 1       
        prevNavn = navn
    End If

    If Person(antal) <> "" Then Person(antal) = Person(antal) & ", "
    Person(antal) = Person(antal) & navn
Next
Avatar billede jsc Nybegynder
30. juli 2006 - 15:48 #6
ser helt vildt godt ud... men den kan ikke li' at man definerer person(antal-1)

måske kan man lave det på en anden måde?

fejl:

Error Type:
Sun ONE ASP VBScript compilation (0x800A0402)
Expected an integer constant
test.asp, line 105, column 12

linie 105: Dim Person(antal-1)
Avatar billede jsc Nybegynder
30. juli 2006 - 15:54 #7
nu ved jeg godt at jeg måske har rodet dig ud i noget værre noget... - men det eneste jeg vil med det her array er at tælle hvor mange gange en værdi står i arrayet - troede det var en let løsning at gøre det sådan som jeg forklarede i starten, men hvis du kan en anden måde at tælle det på, så må du også gerne skrive den.

/jsc
Avatar billede nielle Nybegynder
30. juli 2006 - 16:01 #8
Det kan være at den bedre kan lide:

Dim Person(antal)
Avatar billede jsc Nybegynder
30. juli 2006 - 16:05 #9
kunne den heller ikke... jeg har prøvet.. men jeg tror jeg har fundet ud af noget ved at bruge din måde at programmere på...

            temp2 = split(temp2, ",")

            prevnavn = ""
            For r = 0 to (Ubound(temp2)-Lbound(temp2))
            If temp2(r) <> prevnavn Then
            pos = pos & r & ","
            nam = nam & temp2(r) & ","
            prevnavn = temp2(r)
            end if

            Next

hvis man skriver det, så kan man finde positionerne hvor arrayet ændre sig og så er det jo simpel matematik.... så det er jeg igang med nu...

men smid et svar, så giver jeg point som tak for start og hjælp!
Avatar billede nielle Nybegynder
30. juli 2006 - 16:14 #10
Ok :^)
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