Ir para conteúdo

POWERED BY:

Arquivado

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

Martinsrj

0x800A0009

Recommended Posts

Na parte de ordenar os dados digitados pelo usuario ocorre erro na ordenação no Array.

O erro ocorre na linha 35: if(vetDados(i) > vetDados(j)) then

Obs.: não estou conseguindo colocar o meu código abaixo em CODE.

<%
Dim vetDados(), I, dados
I = 0
For Each dados in Request.Form
    Response.Write dados & " = " & Request.Form(dados)
    
    Redim preserve vetDados(I)
    vetDados(I) = Request.Form(dados)
    I = I + 1
    
    Response.Write ("<br>")
    
Next
Response.Write UBound (vetDados) '-- Aqui eu imprimo o total de indice do Array
Response.Write "<br>"
Response.write (vetDados(1))
Response.Write "<br><br>"


'Sub ordena_dados
For i = LBound(vetDados) to UBound(vetDados)
    For j = 1 to UBound(vetDados)+1
        if(vetDados(i) > vetDados(j)) then
            x = vetDados(i)
            vetDados(i) = vetDados(j)
            vetDados(j) = x
        end if
    Next  
next
'End Sub 

'response.write  i & ": " & vetDados(i) & "<br>" 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode fazer isso UBound(vetDados)+1, uma vez que o J ficará maior que o tamanho do vetor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gaúcho, pelo que entendi do código dele, ele quer ordenar o VETOR. Nesse caso ele adiantou uma casa (indice) para comparar a casa da frente com a anterior, por isso ele somou mais 1. O problema é que a última casa ele teria que comparar com a primeira, mas ao invés disso ele está somando mais um, tentando acessar uma casa que não existe.

 

 

Solução by gaúcho

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah tá, não havia entendido bem o que queria, só me atentei para o que pode ter dado erro.

 

heheh essa "Solução by Gaucho" tem que ser aprimorada, bom é usar o tipo de dados correto ao setar as colunas no recordset

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos para ordenação no Array.

no lab. de script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite hargon!

Obs.: não estou conseguindo colocar o codigo abaixo com tag CODE.

 

Hargon, fiz algumas modificações. Vejo que é necessário criar dois For, um com um indice menor e o outro com começando pelo indice 1, pois foi assim que vi a situação para ordenar os dados dentro do Array.

Veja o codigo abaixo:

 

<%

Dim vetDados(), I, dados

I = 0

For Each dados in Request.Form

Response.Write dados & " = " & Request.Form(dados)

 

Redim preserve vetDados(I)

vetDados(I) = Request.Form(dados)

I = I + 1

 

Response.Write ("<br>")

 

Next

Response.Write UBound (vetDados) '-- Aqui eu imprimo o total de indice do Array

Response.Write "<br>"

Response.write (vetDados(1))

Response.Write "<br><br>"

 

MaxJ = UBound(vetDados)

'Response.Write (MaxJ)

'Sub ordena_dados

For a = LBound(vetDados) to UBound(vetDados)-1

For j = 1 to MaxJ

if vetDados(a) > vetDados(j) then

x = vetDados(a)

vetDados(a) = vetDados(j)

vetDados(j) = x

end if

Next

next

'End Sub

For i = LBound(vetDados) to UBound(vetDados)

response.write i & ": " & vetDados(i) & "<br>"

Next

 

%>

 

Com o código acima compila numa boa, onde solicita a entrada dos dados, porem não está ordenando!

Exemplo: se o usr. entrou com os seguintes dados:

pnome = Antonio

snome = Bia

tnome = Paulo

btnEnviar = Enviar

 

o programa imprime da seguinte forma:

0: Antonio

1: Paulo

2: Bia

3: Enviar

 

Abraços a todos.

 

Você não pode fazer isso UBound(vetDados)+1, uma vez que o J ficará maior que o tamanho do vetor.

 

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.