30. juli 2006 - 13:57Der 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?
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?
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
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.
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!
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.