Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dell

Como transformar isso em ordem crescente?

Recommended Posts

Eu tenho uma busca onde guardo as informações em uma string que vai sendo montada dessa forma;

strid = "/0094/1895/1062/0135/1555/2241"

Porém eu percebi que as vezes vem fora de ordem e gera um pequeno equivoco na minha busca.

Se eu conseguir fazer a sequencia acima ficar em ordem crescente tudo se resolve.

Tem algum modo prático pra fazer isso? Ou vou ter de fazer gambiarra?? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif (dar um jeitinho rsss)

Alguém tem uma sugestão? É que estou com um monte de outras tá dificil de me concentrar nisso agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei em criar um Array mas não consegui

strid = "0094,1895,1062,0135,1555,2241"

A strid é criada em tempo de execução através de um loop

 

Dim arrValue

 

Dessa forma a sequência é ignorada

-------------------------------------------------

arrValue = Array(strid)

-------------------------------------------------

Dessa forma funciona mas remove o zero à esquerda 0094 fica 94

-------------------------------------------------

arrValue = Array(0094,1895,1062,0135,1555,2241)

-------------------------------------------------

 

Function ArraySort(arrInt)

for i = UBound(arrInt) - 1 To 0 Step -1

for j= 0 to i

if arrInt(j)>arrInt(j+1) then

temp = arrInt(j+1)

arrInt(j+1) = arrInt(j)

arrInt(j) = temp

end if

next

next

ArraySort = arrInt

end function

 

response.write Join(ArraySort(arrValue),",")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente funcionou mas deixou minha busca lenta. Fiquei desanimado quando acrescentei mais de 100 produtos em cada categoria.

Minha busca levava 0.8 segundos pra carregar agora leva 5.

Isso porque limitei o resultado para 300.

O array que esta arrastando minha busca.

Dim meuarray(300), arrvalue <-- já notou o problema né, array com 300 números não da

eu usei um loop for para criar a matriz

meuarray(i) = rs("categoria")

depois da matriz pronta eu precisava ordenar para ordem crescente.

Essa função faz isso

 

Function BubbleSort(arrInt)

for i = UBound(arrInt) - 1 To 0 Step -1

for j= 0 to i

if arrInt(j)>arrInt(j+1) then

temp = arrInt(j+1)

arrInt(j+1) = arrInt(j)

arrInt(j) = temp

end if

next

next

BubbleSort = arrInt

end function

cont = Join(BubbleSort(meuarray),",")

Vou ter de reformular meu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou puxar do banco direto com ordenação?

 

se seu campo for int você consegue se for string como são números iria dar erradp

 

no final da query você coloca: ORBER BY tabela.campo asc/desc; - (ascendente/descendente)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.