Avatar billede 2001stausholm Nybegynder
08. oktober 2002 - 08:31 Der er 14 kommentarer og
2 løsninger

Sortering af tal

Er der en smart måde på at sortere tal. Hvis jeg displayer tal kommer de ud som
1 11 2 21 3 4 5 6 7

Jeg vil gerne have dem vist som

1 2 3 4 5 6 7 11 21
Avatar billede medions Nybegynder
08. oktober 2002 - 08:34 #1
strTal = "1 11 2 21 3 4 5 6 7"
arrTal = Split(strTal," ")

intValidator = 0
For i = 0 To UBound(arrTal)
  If arrTal(i) > intValidator
      intTal = intTal & " " & arrTal(i)
  End If
intValidator = intValidator +1
Next

//>Rune
Avatar billede the_bma_man Nybegynder
08. oktober 2002 - 08:35 #2
Hvor får du tallene fra?
Hvis de kommer fra en database er det nemmeste at sortere dem på selectionstidspunktet.
Avatar billede medions Nybegynder
08. oktober 2002 - 08:38 #3
Hvis du har tallene fra en database så kan du gøre som følgende:

strSQL = "SELECT * FROM tabel ORDER tal BY DESC"
Set objRs = objConn.Execute(strSQL)

så vil den sortere som du gerne vil ha' dem ;o)

//>Rune
Avatar billede 2001stausholm Nybegynder
08. oktober 2002 - 08:38 #4
De kommer fra en database, jeg laver en list

<%=List("idintern")%>
Avatar billede the_bma_man Nybegynder
08. oktober 2002 - 08:41 #5
I dette tilfælde bør du, som tidligere nævnt, sortere dine records på selectionstidspunktet - med en ORDER BY.
Avatar billede medions Nybegynder
08. oktober 2002 - 08:43 #6
Så gør sådan her:

strSQL = "SELECT * FROM dintabel ORDER idintern BY DESC"
Set List = Conn.Execute(strSQL)

While Not List.EOF
  Response.Write(List("idintern") & "<br>")
List.MoveNext()
Wend

//>Rune
Avatar billede the_bma_man Nybegynder
08. oktober 2002 - 08:45 #7
Du skal nok bytte rundt på "idintern" og "BY"
ORDER BY idintern DESC
Avatar billede medions Nybegynder
08. oktober 2002 - 08:47 #8
*G* hov

//>Rune
Avatar billede erikjacobsen Ekspert
08. oktober 2002 - 09:07 #9
Det er bestemt nemmest med SQL. Men skal vi ikke lige
tage en god, gammel bobblesortering:

  dim arrTal(9),i,changed,tmp

  arrTal(0)=1
  arrTal(1)=11
  arrTal(2)=2
  arrTal(3)=21
  arrTal(4)=3
  arrTal(5)=4
  arrTal(6)=5
  arrTal(7)=6
  arrTal(8)=7

  for i=0 to ubound(arrTal)
    response.write arrTal(i) & " "
  next
  response.write "<br>"

  changed=true
  do while changed
    changed=false
    for i=1 to ubound(arrTal)
      if arrTal(i-1)>arrTal(i) then
        tmp=arrTal(i-1)
        arrTal(i-1)=arrTal(i)
        arrTal(i)=tmp
        changed=true
      end if
    next
  loop

  for i=0 to ubound(arrTal)
    response.write arrTal(i) & " "
  next
  response.write "<br>"
Avatar billede phineas_phreak Nybegynder
08. oktober 2002 - 10:57 #10
nu du er så godt igang så lad os også liiige se Qsort algoritmen
Avatar billede medions Nybegynder
08. oktober 2002 - 11:30 #11
phineas_phreak> Hvad mener du?

//>Rune
Avatar billede phineas_phreak Nybegynder
08. oktober 2002 - 12:21 #12
erikjacobsen: Det er bestemt nemmest med SQL. Men skal vi ikke lige
tage en god, gammel bobblesortering:

>> phineas_phreak: nu du er så godt igang så lad os også liiige se Qsort algoritmen

Man skal da kunne sine sorteringsalgoritmer. Men det bliver nok lidt mere vanskeligt i det her lortesprog
Avatar billede medions Nybegynder
08. oktober 2002 - 14:55 #13
LOL
Avatar billede 2001stausholm Nybegynder
09. oktober 2002 - 12:20 #14
Jeg har løst det ved at bruge tallene

000001
000002
000003
000021

Så sortere den korekt ved en listning, men i får pointene som tak for god indsats.

Tak
2001Stausholm
Avatar billede the_bma_man Nybegynder
09. oktober 2002 - 14:19 #15
Jamen - takker.
Avatar billede medions Nybegynder
09. oktober 2002 - 15:30 #16
Anytime :o)
Thx 4 Poinz

//>Rune
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