SORTING

USUARIO.EXCLUIDOS 28/07/2005 15:38:48
#96441
Existe alguma função de ordenação numérica no VB ou tenho que implementar algum destes algoritmos existentes com o quicksort ou selection sort?

Grato,
USUARIO.EXCLUIDOS 28/07/2005 19:29:04
#96482
Não existe nenhuma função pronta embutida na linguagem, você terá que gastar seus dedos escrevendo uma!
LCSD 28/07/2005 21:21:43
#96488
José Niz

Boa Noite

Ele poderia trabalhar com RecordSet Desconectado e com o SORT poderia ordenar.

Agora, como é que você, Alien necessita desta implementação?

Poste o código aqui para termos uma idéia.


[txt-color=#008000]** Alien, tu veio de MARTE? [/txt-color]
[s41]
USUARIO.EXCLUIDOS 28/07/2005 21:45:37
#96491
KPELLAJR, muito boa a sua alternativa. [S42]
USUARIO.EXCLUIDOS 28/07/2005 22:25:14
#96497
... ou passando os dados para uma listbox com a propriedade sort=enable...!
LCSD 29/07/2005 07:14:09
#96506
Alien

Eu montei um exemplo nesta linha de raciocínio para um outro colega faz um tempinho, ele deveria importar um TXT e ordenar, além de exibir em um FlexGrid, veja abaixo:

Private Sub Importa() 
Dim i As Integer, sCaminho As String, sTemp As String
Dim lArq As Long, sLinha As String, lCont As Long, lPos As Long

Dim rsDesconectado As ADODB.Recordset
Set rsDesconectado = New ADODB.Recordset

rsDesconectado.Fields.Append "EAN", adVarChar, 18
rsDesconectado.Fields.Append "Descricao", adVarChar, 35
rsDesconectado.Fields.Append "CodigoFornecedor", adVarChar, 20
rsDesconectado.Fields.Append "NumeroLote", adVarChar, 10
rsDesconectado.Fields.Append "Validade", adVarChar, 4
rsDesconectado.Fields.Append "QuantColetada", adVarChar, 6
rsDesconectado.Fields.Append "QuantInformada", adVarChar, 6
rsDesconectado.Fields.Append "CodigoDivergencia", adVarChar, 4
rsDesconectado.Fields.Append "QuantDivergencia", adVarChar, 6
'rsDesconectado.Fields.Append "EAN", adVarChar, 18



rsDesconectado.ActiveConnection = Nothing
rsDesconectado.CursorLocation = adUseClient

rsDesconectado.Open


sCaminho = App.Path & "\Banco Dados\Laboratorio.txt"

lArq = FreeFile
'Abertura do Arquivo
Open sCaminho For Input As lArq
lCont = 1
lPos = 0
Do While Not EOF(lArq)
'Leitura das Linhas de Texto
Line Input #lArq, sLinha

'Monta os Registros
If lCont > 1 Then
If Left(sLinha, 1) = "2" Then Exit Do
'For lPos = 0 To Len(sLinha) Step 68
rsDesconectado.AddNew
rsDesconectado("EAN").Value = Mid(sLinha, lPos + 1, 18)
rsDesconectado("Descricao").Value = Mid(sLinha, lPos + 19, 35)
rsDesconectado("CodigoFornecedor").Value = Mid(sLinha, lPos + 55, 6)
rsDesconectado("NumeroLote").Value = Mid(sLinha, lPos + 62, 10)
rsDesconectado("Validade").Value = Mid(sLinha, lPos + 72, 4)
rsDesconectado("QuantColetada").Value = Mid(sLinha, lPos + 76, 6)
rsDesconectado("QuantInformada").Value = Mid(sLinha, lPos + 82, 6)
rsDesconectado("CodigoDivergencia").Value = Mid(sLinha, lPos + 88, 4)
rsDesconectado("QuantDivergencia").Value = Mid(sLinha, lPos + 92, 6)
rsDesconectado.Update

' Next
End If
lCont = lCont + 1
Loop

Close #lArq

rsDesconectado.Sort = ("Descricao ASC, CodigoFornecedor ASC")

Set MSHFlexGrid1.DataSource = rsDesconectado
rsDesconectado.Close
Set rsDesconectado = Nothing
MSHFlexGrid1.ColWidth(0) = 200
MSHFlexGrid1.ColWidth(1) = 1500
MSHFlexGrid1.ColWidth(2) = 3500
MSHFlexGrid1.ColWidth(3) = 1500

MsgBox "Importado e Classificado "

End Sub


Como você vê acima, ele classificava pela Descrição e Código de Fornecedor, através do SORT.

Boa Sorte
[s92]
Tópico encerrado , respostas não são mais permitidas