Ir para conteúdo

POWERED BY:

Arquivado

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

DionDu

Orientação a objeto

Recommended Posts

Olá. Não tenho experiência com OO.

 

Tenho o seguinte caso. Criarei um objeto 'edital', que possui alguma propriedades, como id, data de inicio, etc e também terá uma propriedade (não sei se assim que se chama mesmo) chamada loc que será um array onde cada item deste array será um outro objeto, o objeto 'loc'.

 

Um método do edital é o adicionarLoc, que deveria adicionar um objeto 'loc' ao array 'edital.loc'.

 

Meu problema é o seguinte, não consigo redimensionar este array 'edital.loc' antes de adicionar um objeto a ele. Toda vez que uso o método adicionarLoc o array 'edital.loc' é zerado.

 

Me ajudem por favor, como posso fazer para redimensionar este array toda vez que adicionar um novo objeto 'loc' ao edital?

 

Abaixo segue meu código:

 

Class edital

Public idEdital
Public dtInicio
Public dtTermino
Public matResp
Public loc

Public Sub adicionarLoc(objUF)
	loc = Array()
	tamanhoLoc = Ubound(loc)
	novoTamanho = tamanhoLoc + 1
	ReDim Preserve loc(novoTamanho)
	Set loc(novoTamanho) = objUF
End Sub

End Class

Class loc

Public loc
Public nome
Public esp

End Class

Set objEdital = new edital

Set objUF = new loc
objUF.loc = "DF"
objUF.nome = "DISTRITO FEDERAL"
objEdital.adicionarLoc(objUF)

Set objUF2 = new loc
objUF2.loc = "SP"
objUF2.nome = "SÃO PAULO"
objEdital.adicionarLoc(objUF2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para redimensionar um array teremos de recorrer ao ReDim Preserve, isto é cada vez que queremos adicionar um elemento ao array temos de o redimensionar, mas preservando o que já lá existia, se usarmos simplesmente o ReDim todo o conteúdo do array será removido, visto que o ReDim cria um novo array, o Preserve irá permitir uma cópia fiel do array e ainda adicionar "n elementos" desejados.

 

 

 

     <%

   dim ArrayRedim()

    dim i


  'Adicionar 1º elemento

     ReDim Preserve ArrayRedim(0)
   ArrayRedim(UBound(ArrayRedim)) = "1º elemento"
    'Adicionar +1 elemento

     ReDim Preserve ArrayRedim(UBound(ArrayRedim)+1)

     ArrayRedim(UBound(ArrayRedim)) = "2º elemento"

     'Adicionar +1 elemento

     ReDim Preserve ArrayRedim(UBound(ArrayRedim)+1)

     ArrayRedim(UBound(ArrayRedim)) = "3º elemento"
 'Adicionar +n elementos
  dim num_elements_add, start_at, until_pos

     num_elements_add=7 'numero de elementos para adicionar

     start_at=UBound(ArrayRedim)

     until_pos=start_at+num_elements_add

     ReDim Preserve ArrayRedim(UBound(ArrayRedim)+num_elements_add)

     for i=(start_at+1) to until_pos

     ArrayRedim(i) = (i+1) & "º elemento"

     next

     'chamar função para imprimir o conteúdo do array

     ToString ArrayRedim

     ''' <summary>

     ''' Imprimir conteúdo do array

     ''' </summary>

     ''' <param name="arr">Array</param>

     ''' <returns>String</returns>

     function ToString(arr)

     countElems=UBound(arr)

     for i=0 to countElems

     Response.write("Posição: " & i & " => " & arr(i) & "<br>")

     next

     end function
%>

 

 

 

 

 

A função ToString irá imprimir para o ecrã a seguinte informação:

 

Posição: 0 => 1º elemento

Posição: 1 => 2º elemento

Posição: 2 => 3º elemento

Posição: 3 => 4º elemento

Posição: 4 => 5º elemento

Posição: 5 => 6º elemento

Posição: 6 => 7º elemento

Posição: 7 => 8º elemento

Posição: 8 => 9º elemento

Posição: 9 => 10º elemento

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.