Ir para conteúdo

POWERED BY:

Arquivado

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

FLB Criações

Array em asp Louco

Recommended Posts

Quando dou um request.form para pegar o array ele vem todo fora de ordem, por exemplo se o pimeiro e 100,101,102,103 ele retorna 102,100,101 ...

 

funciona normal no servidor, apenas não funciona quando passo de asp para executavel com o programa asptoexe. (Subscrito fora do intervalo) devido os vetores virem fora de ordem.

 

Alguem sabe porque?

 

 

'*****************Alterar dados editados****************
dim contador,diametro,posx,posy,w,sql_atualiza

contador = split(request.form("contador"),",")
diametro = split(trim(request.form("diametro")),",")
posx = split(request.form("posx"),",")
posy = split(request.form("posy"),",")

for w = 0 to ubound(contador)

'usar replace para tirar espaço entre virgula array

sql_atualiza = "UPDATE temp SET diametro = '"&replace(diametro(w)," ","")&"', posx='"&replace(posx(w)," ","")&"', posy='"&replace(posy(w)," ","")&"' WHERE contador ='"&replace(contador(w)," ","")&"'"

bd.execute(sql_atualiza)

next 


'*****************END*************

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavelmente é por causa de converter ele para exe, tente usar uma funçao para ordenar o array, como o bubble sort por exemplo, tem varias no laboratorio de script

Compartilhar este post


Link para o post
Compartilhar em outros sites

acesse o laboratorio de script que tem varios exemplos de como Ordenar um array alfabeticamente (A - Z), ou numericamente (cresc.).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz, mais continua errado.

 

Tenho parametros de p100 a p199 e estes parametros possuem diametro, posição x e posição y

Se ordenar por número pode ficar diferente as linhas.

 

EX: p100 = diamertro = 22.6 y = 7.6 x = 6.2

p101 = diametro = 17.5 y = 5.6 x = 4.2

 

 

se ordenar por numero o p100 passa a ser diametro 17.5 e assim por diante.

 

O request.form tem que vir na ordem serta se não da errado.

Acho que estou sem solução

 

Me ajude se puder, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você nao pode ordenar por numero mesmo e depois usar os parametros de acordo com ele ????

e recuperar o valor depois...

ou tb pode passar isso em um bd, fica melhor e mais gerencialvel

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo,de ordenar um multiarray

 

<%

function arraysort(values(),intSortCol,strDirection)
Dim i 
Dim j 
Dim value 
Dim value_j 
dim min
dim max
dim temp
dim datatype
dim intComp
dim intA
dim intCheckIndex
  
min = lbound(values,2)
max = ubound(values,2)
  
if lcase(strDirection) = "d" then
	intComp = -1
else
	intComp = 1
end if
  
if intSortCol < 0 or intSortCol > ubound(values,1) then
	arraysort = values
	exit function
end if

intCheckIndex = min
while len(trim(values(intSortCol,intCheckIndex))) = 0 and intCheckIndex < ubound(values,2)
	intCheckIndex = intCheckIndex + 1
wend
if isDate(trim(values(intSortCol,intCheckIndex))) then
	datatype = 1
else
	if isNumeric(trim(values(intSortCol,intCheckIndex))) then
		datatype = 2
	else
		datatype = 0
	end if
end if
For i = min To max - 1
	value = values(intSortCol,i)
	value_j = i
	For j = i + 1 To max
		select case datatype
			case 0
				If strComp(values(intSortCol,j),value,vbTextCompare) = intComp Then
					value = values(intSortCol,j)
					value_j = j
				End If
			case 1
				if intComp = -1 then
					if DateDiff("s",values(intSortCol,j),value) > 0 then
					value = values(intSortCol,j)
						value_j = j
					end if
				else
					if DateDiff("s",values(intSortCol,j),value) < 0 then
						value = values(intSortCol,j)
						value_j = j
					end if
				end if
			case 2
				if intComp = -1 then
					if cdbl(values(intSortCol,j)) < cdbl(value) then
						value = values(intSortCol,j)
						value_j = j
					end if
				else
					if cdbl(values(intSortCol,j)) > cdbl(value) then
						value = values(intSortCol,j)
						value_j = j
					end if
				end if
		end select
	Next 'j
	If value_j <> i Then

		for intA = 0 to ubound(values,1)
			temp = values(intA,value_j)
			values(intA,value_j) = values(intA,i)
			values(intA,i) = temp
		next 'intA
	End If
Next 'i
arraysort = values
End function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde coloco as array para recuperar? function arraysort(values(coloco aqui),intSortCol,strDirection)

Como dar o response.write? response.write join arraysort = values

 

Urgente, se puder, Obrigado

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.