Ir para conteúdo

POWERED BY:

Arquivado

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

filipecrosk

erro em loop

Recommended Posts

galera porque ta dando erro???

 

estou montando uma sequencia simples... um loop para separar e mostrar as strings separadas... vejam:

 

str1 = "teste,teste,teste,teste"str2 = split(str1,",")conta = UBound(str2)+1for x = 0 to conta	response.Write str2(x)next
so que esta dando esse erro:

 

Erro de tempo de execução do Microsoft VBScript (0x800A0009)

Subscrito fora do intervalo: 'x'

/escoladaserra/alunos/editar_materia.asp, line 39

 

alguem sabe o porque????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você somou "+1" na variável conta você acabou colocando o último "x" fora do intervalo do array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

era isso mesmo cara.. valeus!! você sempre salvando!!!

 

mano tem alguma forma mais facil de pegar os valores dessa variavel:

 

"materia=82&detalhe=658&professor=&aluno=s&tipo=1"

 

porque nessa funcao que estou montando... dentro do str2 vai estar isso ai... e ai preciso pegar os valores de cada coisa e colocar em variaveis separadas

 

ex:

 

materia = 82

detalhe = 65

professor =

aluno = 2

tipo = 1

 

 

se puder ajudar...

 

porque eu teria que fazer isso usando left ou rigth... e ai daria maior trabalho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

As posições serão sempre essas? Pode usar SPLIT novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais uma vez valeus mano... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

mas olha ai... eu estou fazendo assim:

 

str1 = replace(request("inseri"),"inseri.asp?","")str2 = split(str1,",")conta = UBound(str2)'+1'response.Write str2(0) &"<br>"for x = 0 to conta	response.Write str2(x) & "<br>"& x & "<br>----<BR>"	str3 = split(str2(x),"=")	conta2 = UBound(str3)	for y = 0 to conta2		response.Write str3(y) &" - "	nextnext
e esta dando esse resultado:

materia=82&detalhe=657&professor=&aluno=s&tipo=1

0

----

materia - 82&detalhe - 657&professor - &aluno - s&tipo - 1 -

 

ai eu poderia pegar e dar um left em cada str3 mas so que eu não saberia se nessa variavel o valor seria 1 ou 10 ou 100..etc, ou seja se tem mais de um caracter, entende???

 

tem alguma dica velhinho???

 

abracao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem pode dar um Left usando a posição do "&" como limite, mas vai ter que testar se ele existe ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... se as posições sempre forem as msm, você pode fazer algo simples do tipow...

<%var = "materia=82&detalhe=658&professor=&aluno=s&tipo=1"var = Replace(var, "materia", "")var = Replace(var, "detalhe", "")var = Replace(var, "professor", "")	var = Replace(var, "aluno", "")var = Replace(var, "tipo", "")	var = Replace(var, "&", "")	SeuArray = Split(Mid(var, 2 , Len(var)), "=")	For i=0 To UBound(SeuArray)	Response.Write "SeuArray(" & i & "): " & SeuArray(i) & "<BR>"Next%>

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera...

 

valeu pela ajuda de todos ate agora...

 

eu ja mechi aqui... refiz e refiz.. mas ta dando um erro.. olha ai o codigo:

 

for x = 0 to conta		var = str2(x)	response.Write "<br>"& var & "<br>"	var = Replace(var, "materia", "")	var = Replace(var, "detalhe", "")	var = Replace(var, "professor", "")		var = Replace(var, "aluno", "")	var = Replace(var, "tipo", "")		var = Replace(var, "&", "")			SeuArray = Split(Mid(var, 2 , Len(var)), "=")			For i=0 To UBound(SeuArray)		Response.Write "SeuArray(" & i & "): " & SeuArray(i) & "<BR>"	Next	next

ta retornando esse resultado:

 

materia=82&detalhe=657&professor=&aluno=s&tipo=1[color=#FF0000]SeuArray(0): 82SeuArray(1): 657SeuArray(2): SeuArray(3): sSeuArray(4): 1[/color]materia=82&detalhe=658&professor=&aluno=s&tipo=1SeuArray(0): SeuArray(1): 82SeuArray(2): 658SeuArray(3): SeuArray(4): sSeuArray(5): 1materia=82&detalhe=660&professor=&aluno=s&tipo=1SeuArray(0): SeuArray(1): 82SeuArray(2): 660SeuArray(3): SeuArray(4): sSeuArray(5): 1materia=82&detalhe=661&professor=&aluno=n&tipo=1SeuArray(0): SeuArray(1): 82SeuArray(2): 661SeuArray(3): SeuArray(4): nSeuArray(5): 1

o erro esta no primeiro.... ele não gera 6 arrays, ou 6 posicoes, so gera 5.... mas ta tudo certo...

 

qual o erro nisso ou como faco para corrigir.. alguem saberia????

 

valeus http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... eu fiz aqui em casa e retornou certinho...veja...

materia=82&detalhe=657&professor=&aluno=s&tipo=1SeuArray(0): 82SeuArray(1): 657SeuArray(2): SeuArray(3): sSeuArray(4): 1materia=82&detalhe=658&professor=&aluno=s&tipo=1SeuArray(0): 82SeuArray(1): 658SeuArray(2): SeuArray(3): sSeuArray(4): 1materia=82&detalhe=660&professor=&aluno=s&tipo=1SeuArray(0): 82SeuArray(1): 660SeuArray(2): SeuArray(3): sSeuArray(4): 1materia=82&detalhe=661&professor=&aluno=n&tipo=1SeuArray(0): 82SeuArray(1): 661SeuArray(2): SeuArray(3): nSeuArray(4): 1

Mas eu acho que você está passando valores a mais...coloque o código assim...
for x = 0 to conta		var = str2(x)	response.Write "<br>"& var & "<br>"	var = Replace(var, "[color=#FF0000]", "")	var = Replace(var, "[/color]", "")	var = Replace(var, "materia", "")	var = Replace(var, "detalhe", "")	var = Replace(var, "professor", "")		var = Replace(var, "aluno", "")	var = Replace(var, "tipo", "")		var = Replace(var, "&", "")			SeuArray = Split(Mid(var, 2 , Len(var)), "=")			For i=0 To UBound(SeuArray)		Response.Write "SeuArray(" & i & "): " & SeuArray(i) & "<BR>"	Next	next
veja se funciona ae...Boa Sorte!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amon, com certeza em seu teste você deve ter tirado o 1º "=".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amon, com certeza em seu teste você deve ter tirado o 1º "=".

Tirei naum...

tipow... eu peguei a variavel com o valor assim... materia=82&detalhe=657&professor=&aluno=s&tipo=1

 

achei estranho... mas veja que está aparecendo esses valores entre [] que ele naum tinha dito antes...

de qualquer forma, passei essa outra parte para ele testar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pequena alteração em relação ao do Amon:

for x = 0 to conta

var = str2(x)
response.Write "<br>"& var & "<br>"
var = Replace(var, "materia=", "")
var = Replace(var, "detalhe=", "")
var = Replace(var, "professor=", "")	
var = Replace(var, "aluno=", "")
var = Replace(var, "tipo=", "")	

SeuArray = Split(Var, "&")

For i=0 To UBound(SeuArray)
	Response.Write "SeuArray(" & i & "): " & SeuArray(i) & "<BR>"
Next	
next

Testa agora.

 

Amon, os códigos entre [] aparentemente são os BBCodes daqui do fórum, aparentemente ele tentou colocar uma corzinha no post dele e como dentro da Tag CODE as formatações não são aceitas deu isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amon, os códigos entre [] aparentemente são os BBCodes daqui do fórum, aparentemente ele tentou colocar uma corzinha no post dele e como dentro da Tag CODE as formatações não são aceitas deu isso.

hehehe cara eu nem me liguei... http://forum.imasters.com.br/public/style_emoticons/default/yay.gif tinha levado o maior susto qnd vi... hehehe

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.