Avatar billede blach Nybegynder
07. januar 2003 - 18:56 Der er 21 kommentarer og
1 løsning

Sortering

Jeg skal have sorteret nogle tegn i en liste der hedder Lst(0), altså så de ligger i alfabetisk og nummerisk rækkefølge... De hedder følgende:
r01-r13
s01-s13
k01-k13
h01-h13

Kan det lade sig gøre at skrive noget "sort.lst(0)" eller skal man have dem omkring en string eller noget?

Kom med noget kode :]
Avatar billede sjh Nybegynder
07. januar 2003 - 19:08 #1
set List1.Sorted til True
Avatar billede sjh Nybegynder
07. januar 2003 - 19:32 #2
ellers så prøv sådan:


Public lstObj As ListBox

Public Sub AddItem(ByVal new_item As String)
Dim i As Integer

  For i = 0 To lstObj.ListCount - 1
    If Mid(lstObj.List(i), 2, 1) >= Mid(new_item, 2, 1) Then Exit For
  Next i
 
  If i > lstObj.ListCount Then
    lstObj.AddItem new_item
      Else
    lstObj.AddItem new_item, i
  End If
End Sub

Private Sub Form_Load()
'Husk List1.Selected = False
Set lstObj = List1

  AddItem "aaaaaa"
  AddItem "bbbbbb"
  AddItem "cccccc"
  AddItem "r01 -r13"
  AddItem "s01 -s13"
  AddItem "k01 -k13"
  AddItem "h01 -h13"

End Sub
Avatar billede blach Nybegynder
08. januar 2003 - 16:42 #3
Lst(0).Sorted = True
virker ikke...
Kan man ikke sætte den til at sortere og efterfølgende opdatere den?
Avatar billede sjh Nybegynder
08. januar 2003 - 16:55 #4
man kan ikke skrive "Lst(0).Sorted = True" men du kan sette Sorted til True i properties for List1 eller Lst(x)
Avatar billede blach Nybegynder
08. januar 2003 - 16:57 #5
Ja, men den skal først sortere listen når man klikker på en knap... Man må kun skrive det ind i koden:

Private Sub Command3_Click()

End Sub
Avatar billede sjh Nybegynder
08. januar 2003 - 16:58 #6
ubs 'Husk List1.Selected = False skulle være 'Husk List1.Sorted = False
Avatar billede sjh Nybegynder
08. januar 2003 - 17:00 #7
nej det skal være sat fra starten om den skal sort eller ej.
Avatar billede blach Nybegynder
08. januar 2003 - 17:02 #8
Det må kunne lade sig gøre at sortere listen igen ved et tryk på en knap - altså ikke fra start af!?
Avatar billede sjh Nybegynder
08. januar 2003 - 17:04 #9
hvis du har sat List1.Sorted = true så gør den det automatisk, men ikke med den kode jeg har lavet til dig.
Avatar billede blach Nybegynder
08. januar 2003 - 17:05 #10
Det er måske også fint nok at den sorterer listen fra start af..
Men hvad så når jeg putter noget nyt ind i listen? altså ind imellem andre ting? Så sorterer den ikke...
Er der en måde man kan opdatere den når man tilføjer noget?
Avatar billede sjh Nybegynder
08. januar 2003 - 17:07 #11
er det den kode jeg har lavet du bruger eller er det List1.Sorted = True ??
Avatar billede blach Nybegynder
08. januar 2003 - 17:09 #12
Det er Lst(1).Sorted = True jeg bruger
når jeg tilføjer noget til listen bliver det ikke sorteret igen...
kan jeg opdatere den ?
Avatar billede sjh Nybegynder
08. januar 2003 - 17:15 #13
det fatter jeg ikke den sorter ikke en skid

hvis man tilføjer:

  List1.AddItem "aaaaaa"
  List1.AddItem "bbbbbb"
  List1.AddItem "cccccc"

bliver det til:
'"bbbbbb"
'"cccccc"
'"aaaaaa"

det skulle vel blive til:
'"aaaaaa"
'"bbbbbb"
'"cccccc"


nu er jeg på bar bund
Avatar billede sjh Nybegynder
08. januar 2003 - 17:17 #14
ellers prøv med List1.Refresh
Avatar billede blach Nybegynder
08. januar 2003 - 17:18 #15
Det virker fint nok første gang jeg tilføjer til listen - så bliver de sorteret.. Men så gør jeg eks. følgende:
        Lst(0).RemoveItem 3
        Lst(1).ListIndex = 0
        Lst(0).AddItem Lst(1).Text, 3
        Lst(1).RemoveItem 0

Altså der bliver tilføjet til Lst(0) fra Lst(1), men det bliver ikke sorteret igen...
Avatar billede sjh Nybegynder
08. januar 2003 - 17:19 #16
har du prøv med List1.Refresh
Avatar billede blach Nybegynder
08. januar 2003 - 17:19 #17
Måske du kan ændre på den kode der?
Altså den skal:
Slette nr. 3 i Lst(0)
Tilføje nr. 1 fra Lst(1) til Lst(0) (og så sortere listen)
Slette nr 1 i Lst(1)
Avatar billede sjh Nybegynder
08. januar 2003 - 17:22 #18
prøv uden ,3 (Lst(0).AddItem Lst(1).Text, 3)


Lst(0).RemoveItem 3
Lst(1).ListIndex = 0
Lst(0).AddItem Lst(1).Text
Lst(1).RemoveItem 0
Avatar billede blach Nybegynder
08. januar 2003 - 17:23 #19
Lst(0).Refresh virker ikke....
Avatar billede blach Nybegynder
08. januar 2003 - 17:25 #20
Jov det virker :]
Avatar billede blach Nybegynder
08. januar 2003 - 17:25 #21
Lst(0).RemoveItem 3
Lst(1).ListIndex = 0
Lst(0).AddItem Lst(1).Text
Lst(1).RemoveItem 0
Avatar billede sjh Nybegynder
08. januar 2003 - 17:29 #22
det var da godt :))
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