Ir para conteúdo

POWERED BY:

Arquivado

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

*_Charles Potter_*

[Resolvido] Array dentro de classe

Recommended Posts

Boa Noite,

 

Alguem poderia me ajudar na seguinte questão.

 

Preciso fazer o seguinte...

 

classe teste

dim este_array

function grava_no_array(valor)

end function

End Class

Sempre que for chamada a função "grava_no_array" da classe "teste" seja gravado o novo valor na variavel "este_array"

 

Alguem sabe como fazer isto?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só, até consegui desenvolver algo.

Mas você precisa pré-definir até quanto irá seu array. Havia tentado fazer dando um redim sempre, mas quando isso é feito, os valores anteriores somem.

 

Tente isso:

 

dim esse_array(10000)
dim cont

cont = 0

sub GravaArray(str)

esse_array(cont) = str
cont = cont+1

end sub

for i = 0 to cont

response.write esse_array(i) & "<br />"

next

Espero que sirva para o que precisa.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só complementando, olha este exemplo:

 

Class clsArray

	Private currentArray
	Private tempArray
	
	Private Sub Class_Initialize()
		If Not IsArray(currentArray) Then 
			currentArray = Array()
		End If
	End Sub
	
	Private Sub Class_Terminate()
		If IsArray(currentArray) Then 
			currentArray = Empty
		End If
	End Sub
	
	'Cria um novo array no Array Corrente com valores passados nos parametros separados por virgulas
	Public Sub Create(arrValues)
		If Isempty(arrValues) Then Exit Sub
		tempArray = Split(arrValues,",")
		If IsArray(tempArray) Then 
			currentArray = tempArray
		End If
		tempArray = Empty
	End Sub
	
	'Configura um Array externo para ser operado na classe
	Public Sub setArray(vArr)
		If IsArray(vArr) Then 
			currentArray = vArr
		End If
	End Sub
	
	'Retorna o Array 
	Public Function getArray()
		If IsArray(currentArray) Then 
			getArray = currentArray
		End If
	End Function
	
	'Adiciona um item ao array corrente
	Public Sub Add(arrValue) 
		If IsEmpty(Trim(arrValue)) Then Exit Sub
		ReDim preserve currentArray(UBound(currentArray)+1)
		currentArray(Ubound(currentArray)) = arrValue
	End Sub
	
	'Remove um item do array corrente
	Public Sub Remove(arrValue)
		If Not IsArray(currentArray) OR IsNull(arrValue) Then Exit Sub
		tempArray = Array()
		For xy = 0 To Count
			If currentArray(xy) <> arrValue Then
				ReDim preserve tempArray (UBound(tempArray)+1)
				tempArray(Ubound(tempArray)) = currentArray(xy)
			End If
		Next
		currentArray = tempArray
		tempArray = Empty
	End Sub
	
	'Retorna o Tamanho do Array atual
	Public Property Get Count()
		Count = Ubound(currentArray)
	End Property

	'Pega um valor pelo indice
	Public Property Get Value(arrKey)
		Value = currentArray(arrKey)
	End Property
	
	'Verifica se existe o valor repassado dentro do array corrente
	Public Function Exists(arrValue)
		If Not IsArray(currentArray) OR IsNull(arrValue) Then Exit Function
		Exists = False
		For xy = 0 To Count
			If trim(currentArray(xy)) = arrValue Then
				Exists = True : Exit Function
			End If
		Next	
	End Function
	
	'Aplica a função Join
	Public Function JoinArray(char)
		JoinArray = Join(currentArray, char)
	End Function
	
	'Escreve o array separado por vírgulas
	Public Sub Print()
		Response.Write(JoinArray(","))
	End Sub
	
End Class

exemplo:

 

Set objArr = new clsArray
objArr.Create("Alexandre, Ricardo, Marcelo")
Response.Write(objArr.JoinArray(",")&"<br>")
objArr.Add("Maurício")
Response.Write(objArr.JoinArray(",")&"<br>")
objArr.Remove("Alexandre")
objArr.Print()
Response.Write("<br>"&objArr.Exists("Ricardo"))
Response.Write("<br>"&objArr.Value(1))
objArr.Add("César")
Response.Write("<br>Quantidade de itens no array: "&objArr.Count()+1)
Response.Write("<br>Quem são esses itens: "&Join(objArr.getArray))

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.