ORDENAR VARIAVEIS ARRAYS
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?
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?
Dê uma olhada no link:
www.vbmania.com.br/vbmdetail.php?varID=830
www.vbmania.com.br/vbmdetail.php?varID=830
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?
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?
Uma maneira mais fácil:
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
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