/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
sortering af vaerdier i et array
Fra : Lars Hoffmann


Dato : 12-12-01 15:15

Jeg har et array med unikke vaerdier og kunne godt taenke mig at faa dem
ordnet alfabetisk. Findes der en funktion der kan goere det for mig
eller er der eventuelt en der har brygget en saadan funktion sammen.
Paa forhaand tak
Lars Hoffmann



 
 
Lars Hoffmann (12-12-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 12-12-01 15:38


Lars Hoffmann <lars@hoffmann.ac> escribió en el mensaje de noticias
9v7om0$tar$1@newsreader.mailgate.org...
> Jeg har et array med unikke vaerdier og kunne godt taenke mig at faa
dem
> ordnet alfabetisk. Findes der en funktion der kan goere det for mig
> eller er der eventuelt en der har brygget en saadan funktion sammen.

Jeg har fundet paa denne funktion og det ser ud til at virke ok, jeg er
dog stadig interesseret i at hoere om det kan goeres nemmere:

Sub ordenar(ByRef theArray() As String, isNum As Boolean)
Dim Index As Integer
Dim Counter As Integer
Dim Counter2 As Integer
Dim Smallest As Integer
Dim Temp As String

For Counter = 0 To (UBound(theArray) - 2)
Smallest = Counter
For Counter2 = (Counter + 1) To UBound(theArray) - 1
If isNum Then
If Val(theArray(Smallest)) > Val(theArray(Counter2))
Then
Smallest = Counter2
End If
Else
If theArray(Smallest) > theArray(Counter2) Then
Smallest = Counter2
End If
End If
Next Counter2
Temp = theArray(Counter)
theArray(Counter) = theArray(Smallest)
theArray(Smallest) = Temp
Next Counter
End Sub








Mikkel Bundgaard (12-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 12-12-01 16:34

"Lars Hoffmann" <lars@hoffmann.ac> wrote in message
news:9v7q0o$u96$1@newsreader.mailgate.org...
> Lars Hoffmann <lars@hoffmann.ac> escribió en el mensaje de
> noticias 9v7om0$tar$1@newsreader.mailgate.org...
> > Jeg har et array med unikke vaerdier og kunne godt taenke
> > mig at faa dem ordnet alfabetisk. Findes der en funktion der
> > kan goere det for mig eller er der eventuelt en der har brygget
> > en saadan funktion sammen.
>
> Jeg har fundet paa denne funktion og det ser ud til at virke ok,
> jeg er dog stadig interesseret i at hoere om det kan goeres
> nemmere:
<SNIP Kode>
Hej Lars

Din procedure er en implementering af Selection sort. Jeg ved ikke
om koden kan gøres "nemmere" (hvad det så end betyder .
Men du kan vælge en anden type sortering, der kører hurtigere
(ved tilpas store mængder data) f.eks. Mergesort
http://www.freevbcode.com/ShowCode.Asp?ID=847
Hvis du arbejder med et lille antal af værdier vil du ikke kunne
mærke nogen forskel i fart (Selection sort vil måske være
hurtigere), men ved store mængder af data, er Mergesort meget
bedre.

Du kan også downloade VB implementeringer af nogle af de
kendteste algoritmer for sortering
http://www.freevbcode.com/ShowCode.Asp?ID=965
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Lars Hoffmann (12-12-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 12-12-01 17:10

Mikkel Bundgaard <mikkelbu@teliamail.dk> escribió en el mensaje de
noticias 9v7uqg$q3g$1@sunsite.dk...

> Din procedure er en implementering af Selection sort. Jeg ved ikke
> om koden kan gøres "nemmere" (hvad det så end betyder .
> Men du kan vælge en anden type sortering, der kører hurtigere
> (ved tilpas store mængder data) f.eks. Mergesort
> http://www.freevbcode.com/ShowCode.Asp?ID=847

Mergesort lyder helt enormt smart, dog er der den ulempe at det ikke
virker Den klager sig over foelgende:

Private Function MergeArray(String1() As String,String2() As String) As
String()

Kan det vaere at funktioner i VBA ikke kan returnere et array?
Med venlig hilsen
Lars Hoffmann



Mikkel Bundgaard (12-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 12-12-01 19:53

"Lars Hoffmann" <lars@hoffmann.ac> wrote in message
news:9v7vel$175$1@newsreader.mailgate.org...
> Mikkel Bundgaard <mikkelbu@teliamail.dk> escribió en el
> mensaje de noticias 9v7uqg$q3g$1@sunsite.dk...
>
> Mergesort lyder helt enormt smart, dog er der den ulempe at det
> ikke virker Den klager sig over foelgende:
>
> Private Function MergeArray(String1() As String,String2() As
> String) As String()
>
> Kan det vaere at funktioner i VBA ikke kan returnere et array?
> Med venlig hilsen
> Lars Hoffmann
Hej Lars

Jeg havde ikke kigget i koden før jeg sendte dig linket, men koden
fra det andet link ser ud til at virke (både i VB og VBA).
http://www.freevbcode.com/ShowCode.Asp?ID=965
Du kan downloade bas filen fra
http://www.freevbcode.com/code/stringsort.zip
og importere den. Du skal nok enten bruge proceduren
QuickSortStringsStart eller MergeSortStringsStart.

Håber du kan bruge det til noget og undskyld for ulejligheden

PS. Hvorfor taler din OE spansk (gætter jeg).
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Lars Hoffmann (12-12-2001)
Kommentar
Fra : Lars Hoffmann


Dato : 12-12-01 23:19

Mikkel Bundgaard wrote in dk.edb.programmering.basic.visual-basic

> Du kan downloade bas filen fra
> http://www.freevbcode.com/code/stringsort.zip
> og importere den. Du skal nok enten bruge proceduren
> QuickSortStringsStart eller MergeSortStringsStart.

Lækkert, jeg prøver det som det første når jeg kommer på arbejde i
morgen tidlig.

> Håber du kan bruge det til noget og undskyld for ulejligheden

Ingen grund til at undskylde, jeg sætter skam pris på al den hjælp jeg
får

> PS. Hvorfor taler din OE spansk (gætter jeg).

Min OE (På arbejdet) taler spansk fordi jeg bor i Madrid
Med venlig hilsen
Lars Hoffmann

bnj (12-12-2001)
Kommentar
Fra : bnj


Dato : 12-12-01 16:32

Du kan benytte en ListBox med "Sorted" property sat til "True"... du kan
vist desværre ikke bruge den uden en "Form" - sorted property kan også kun
sættes i "design time". .. nej det er ikke pænt, og sikkert heller
ikke hurtigt...

( .. der findes et C++ ActiveX example project som laver en visual basic
collection. Her kan man ændre koden til at benytte en sorteret STL liste.)

/ Bo

"Lars Hoffmann" <lars@hoffmann.ac> wrote in message
news:9v7om0$tar$1@newsreader.mailgate.org...
> Jeg har et array med unikke vaerdier og kunne godt taenke mig at faa dem
> ordnet alfabetisk. Findes der en funktion der kan goere det for mig
> eller er der eventuelt en der har brygget en saadan funktion sammen.
> Paa forhaand tak
> Lars Hoffmann
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste