ORDENAR VARIAVEIS ARRAYS

JDBASIC 04/04/2005 14:30:54
#76567
Boa-tarde, tenho um array de variáveis tipo date assim:

Dim Data(0 to 9) as Date

com os seguntes valores:

Data(0)= #01/01/2005#
Data(1)= #06/04/2005#
Data(2)= #01/06/2002#
Data(3)= #02/03/2001#
Data(4)= #09/03/2005#
Data(5)= #05/01/2005#
Data(6)= #04/03/2006#
Data(7)= #01/05/2009#
Data(8)= #02/06/2001#
Data(9)= #03/02/2000#

Tà' querendo ordenar essas datas crescente colocando o valor dela em outra variável array:

Dim DataOrder(0 to 9) as Date

DataOrder(0)=#03/02/2000#
DataOrder(0)=#02/03/2001#
DataOrder(0)=#02/06/2001#
DataOrder(0)=#01/06/2002#
DataOrder(0)=#01/01/2005#

e assim por diante, ache que consegue-se isso con o loço for..next

mas com?

USUARIO.EXCLUIDOS 04/04/2005 14:49:48
#76575
Resposta escolhida
JDBASIC 04/04/2005 17:53:52
#76628
Galera, só pra corrigir o que eu quero é que ordene de forma crescente em outra variável array tipo assim:

Dim DataOrder(0 to 9) as Date

DataOrder(0)=#03/02/2000#
DataOrder(1)=#02/03/2001#
DataOrder(2)=#02/06/2001#
DataOrder(3)=#01/06/2002#
DataOrder(4)=#01/01/2005#

e assim por diante, acho que consegue-se isso con o loço for..next

mas como?
USUARIO.EXCLUIDOS 04/04/2005 18:28:59
#76630
Uma maneira mais fácil:

Private Sub Sort()
Dim counter1 As Integer
Dim counter2 As Integer
Dim ordered As Boolean
Dim vetor1()
ReDim vetor1(List1.ListCount - 1)
ordered = False

For counter1 = 0 To List1.ListCount - 1
vetor1(counter1) = List1.List(counter1)
Next

For counter1 = UBound(vetor1) To 2 Step -1
If ordered = True Then Exit For
ordered = True
For counter2 = 0 To counter1 - 1
If vetor1(counter2) > vetor1(counter2 + 1) Then
vetor1(0) = vetor1(counter2)
vetor1(counter2) = vetor1(counter2 + 1)
vetor1(counter2 + 1) = vetor1(0)
ordered = False
End If
Next counter2
Next counter1

End Sub

Entenda o List1 como sendo seu primeiro Array e o vetor1 como sendo seu array final ordenado.
Caso queira trocar a ordenação é só trocar o sinal ">" por "<" dentro do loop

Espero ter ajudado
Tópico encerrado , respostas não são mais permitidas