Avatar billede kamak Praktikant
15. december 2001 - 23:08 Der er 4 kommentarer og
1 løsning

Sorter


jeg har en form med:
8 labels der hedder lbl1, lbl2, lbl3, lbl4 o.s.v
8 variabler af typen single der hedder S1, S2, S3, S4 o.s.v
En command-button der hedder \"cmdSorter\"

De 8 variabler for tildelt nogle forskellige værdier imellem 1 og 50.
når man trykker på \"cmdSorter\" skal variablernes indhold skrives i de 8 labels caption således at den variabel med den strøste værdi står i lbl1, variablen med den næststørste værdi står i lbl2 o.s.v

Hvordan løser man dette problem uden af lave 117 if-sætninger.

/kamak
Avatar billede proaccess Nybegynder
16. december 2001 - 08:53 #1
Hvis du havde lavet dine labels og variabler som arrays, kunne du have brugt følgende:

Public Sub cmdSorter()
  Dim i As Integer, j As Integer, x As Integer
  For i = 1 To 7
    For j = i + 1 To 8
      If S(i) < S(j) Then
        x = S(i)
        S(i) = S(j)
        S(j) = x
      End If
    Next
  Next
  For i = 1 To 8
    lbl(i).Caption = S(i)
  Next
End Sub
Avatar billede proaccess Nybegynder
16. december 2001 - 12:54 #2
HOVSA: x skal selvfølgelig være af typen Single, så den \"passer sammen med\" dine S-variabler...
Hvis det er heltal, du registrerer, så er Integer da bare bedre end single...
Avatar billede jesperthomsen Nybegynder
16. december 2001 - 16:55 #3
En simpel og lidt fusket måde er at lave en usynlig liste på samme skærmbillede, gør den sorteret og smide alle værdierne i den og hente dem ud igen. Jeg har ikke VB installeret på denne maskine så jeg kan ikke ligge eksempelkode, desværre.
Avatar billede kamak Praktikant
17. december 2001 - 08:59 #4
proacces> din måde virker godt nok men der er det problem at S(1), S(2) osv skal blive ved med at have deres oprindelige værdi. Det er KUN lbl(1), lbl(2) osv der må ændre caption...
Med din metode bliver tallene også sorteret således at den største værdi står i S(1) osv...
Avatar billede kamak Praktikant
17. december 2001 - 09:08 #5
Glem hvad jeg skrev for - det problem sidste problem var nemt at løse. Mange tak for hjælpen proacces :-)
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