Visual Basic 6.0 ok... lägg det i en Array och kör en loop i loopen som kollar om tal A är större än tal B i så fall lägg till det i nästa posion. Ungefär samma svar som Joakim. Kan det här hjälpa? Tack för svaren. Skall se om jag lyckas få ordning på detta annars återkommer jag =). Det sista tipset ser rätt intressant ut.Sortering av tal i listbox
Hejsan!
Sitter här med ett litet problem. Nämligen att sortera värdena i en ”listbox” efter det att man matat in 10 tal. Anledningen till att sorted = True inte fungerar i detta avseende är att jag matat in talen rad för rad specifikt. Som koden visar ned så har jag redan ett tal som är inmatat.
If lstComp01.list(0) <= 9 then
lstComp01.list(0) = “0” & lstComp01.list(0)
If lstComp01.list(1) <= 9 then
lstComp01.list(1) = “0” & lstComp01.list(1)
If lstComp01.list(2) <= 9 then
lstComp01.list(2) = “0” & lstComp01.list(2)
osv.
Efter dessa rutiner skall då listboxen sorteras så att t.ex. följande tal: 2, 37, 14, 6, 18 blir:
02, 06, 14, 18, 37
Har provat ett x antal olika procedurer men det löser sig inte. Tacksam för all hjälp jag kan få.
Tack på förhand / MorganSv: Sortering av tal i listbox
1. gå inte igenom tal för tal - loopa igenom listan och uppdatera värde för värde istället.
2. du måste trigga sorteringen på något sätt, tex genom att anropa ett event eller vad du nu har lagt sorteringen (kolla i hjälpen vad det är som triggar att sortering sker)
/EmmaSv:Sortering av tal i listbox
Sen lägger du helt enkelt till arrayen till list boxen loistbox.item[i]=Array[i]Sv: Sortering av tal i listbox
Men om du vet vad högsta tal kan bli(just nu i ditt exempel 37) så
gör du en tmpArray() As Boolean
Redim tmpArray(40)
Lägger in tmpArray(2) = True tmpArray(6) = True tmpArray(37) = True osv.
Därifrån läser du in alla True till ListBoxen enl princip Joakim härovan.
Listboxen kan då vara Sorted = FalseSv: Sortering av tal i listbox
Private Sub Form_Load()
Add List1, 2
Add List1, 37
Add List1, 14
Add List1, 6
Add List1, 18
End Sub
Function Add(List As ListBox, NewData As Long) As Long
Dim I As Long
For I = 0 To List.ListCount - 1
If List.ItemData(I) > NewData Then
Exit For
End If
Next
List.AddItem NewData, I
List.ItemData(I) = NewData
Add = I
End Function
Sv:Sortering av tal i listbox
Tack / Morgan