Avatar billede m__kruger Nybegynder
07. oktober 2004 - 20:02 Der er 2 kommentarer og
1 løsning

Ordning af streng fra array.

Hey

Er der nogen der har nogle gode idéer til hvordan jeg kan lave arrRel om til et array, arrStr, bestående af nogle understrenge sorteret efter det første nr i rækken (eg. 0 ved 0-22).

arrRel:
arrRel(0) = 0-22
arrRel(1) = 0-48
arrRel(2) = 0-49
arrRel(3) = 22-23
arrRel(4) = 23-25
arrRel(5) = 23-51
arrRel(6) = 49-50

arrStr:
arrStr(0) = 0-22,0-48,0-89
arrStr(1) = 22-23
arrStr(2) = 23-25,23-51
arrStr(3) = 49-50

Håber nogen kan hjælpe.

Mvh
Avatar billede tofte Juniormester
12. oktober 2004 - 13:03 #1
Hvis arrRel er sorteret som den er i det tilfælde du har vist, kan du bruge følgende.

function firstPart(str)
    if instr(1,str,"-") >0 then
        firstPart=left(str,Instr(1,str,"-")-1)
    else
        firstPart=""   
    end if
end function

function mkStrArr(arr)
    dim prev,str
   
    prev=firstPart(arr(LBound(arr)))
    str=arr(LBound(arr))&","
    for a = LBound(arr)+1 to UBound(arr)
        if firstPart(arr(a))=prev then
            str=str&arr(a)&","
        else
            str=str&","&arr(a)&","
            prev=firstPart(arr(a))
        end if
    next
   
    mkStrArr = split(left(str,len(str)-1),",,")
end function

dim str,arrStr,msg,a,arrRel(6)

arrRel(0) = "0-22"
arrRel(1) = "0-48"
arrRel(2) = "0-49"
arrRel(3) = "22-23"
arrRel(4) = "23-25"
arrRel(5) = "23-51"
arrRel(6) = "49-50"

arrStr=mkStrArr(arrRel)
Avatar billede m__kruger Nybegynder
18. oktober 2004 - 18:30 #2
Helt sikkert.

Det virker perfekt :)
Avatar billede m__kruger Nybegynder
18. oktober 2004 - 18:45 #3
Til at sortere arrayet alfabetisk bruger jeg CombSort():
--
Function CombSort(byVal UnsortedArray)
Dim I, J, Temp, Gap, Swapped
Dim ArrSize, Combcom, Combswap
Const Shrink = 1.3
ArrSize = UBOUND( UnsortedArray )
Gap = Arrsize - 1
Do
  Gap = Int(Gap / Shrink)
  Swapped = True
  Combcom = Combcom + 1
  For J = 0 To Arrsize - Gap
  If UnsortedArray(J) > UnsortedArray(J + Gap) Then
    Temp = UnsortedArray(J)
    UnsortedArray(J) = UnsortedArray(J + Gap)
    UnsortedArray(J + Gap) = Temp
    Swapped = False
    Combswap = Combswap + 1
  End If
  Next
Loop Until Not Swapped And Gap = 1
CombSort = UnsortedArray
End Function
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