A matriz dinâmica ASP fornece Add, Insert, Remove, RemoveAt, Search e outros métodos. Os objetos podem ser armazenados em arrays independentemente de problemas de eficiência
Copie o código do código da seguinte forma:
Vetor de classe
Vector_datas privados()
Private inicial_capacity 'Capacidade de inicialização
Capacidade privada_increment 'Incremento de capacidade
Element_count privado 'Número de elementos
Capacidade total privada max_capacity
Subclasse Privada_Initialize()
Remover tudo
Finalizar sub
Função Pública RemoveAll()
contagem_de_elementos = 0
capacidade_inicial = 10
incremento_de capacidade = 10
capacidade_máx = capacidade_inicial
ReDim vector_datas(capacidade_inicial)
Função final
Propriedade Pública Obter Contagem()
Contagem = element_count
Propriedade final
Propriedade Pública Obter Capacidade()
Capacidade = capacidade_máxima
Propriedade final
Propriedade Pública GetInitialCapacity()
Capacidade Inicial = capacidade_inicial
Propriedade final
Propriedade Pública Obter CapacidadeIncrement()
CapacidadeIncremento = capacidade_incremento
Propriedade final
Propriedade padrão pública obter item (índice)
Se IsObject(vector_datas(index)) Então
Definir Item = vector_datas(índice)
Outro
Item = dados_vetoriais(índice)
Terminar se
Propriedade final
Adicionar função pública (elemento)
Chame Insert(element_count, elemento)
Função final
Função pública Remover (elemento)
Índice escuro
índice = Pesquisa (elemento)
RemoverAt(índice)
Remover=índice
Função final
Função pública RemoveAt(índice)
Escureça eu
Para i = índice + 1 Para element_count - 1 Etapa 1
Chame InternalElement(i - 1, vector_datas(i))
Próximo
contagem_elementos = contagem_elementos - 1
Se max_capacity -capacidade_increment > element_count Então
max_capacity = max_capacity - capacidade_incremento
ReDim Preservar vector_datas(max_capacity)
Terminar se
Função final
Pesquisa de função pública (elemento)
Escureça eu
Para i = 0 Para element_count - 1 Etapa 1
Se vector_datas(i) = elemento Então
Pesquisa = eu
Função de saída
Terminar se
Próximo
Pesquisa=-1
Função final
Inserção de função pública (índice, elemento)
Se índice > element_count Então
Err.Raise 20903, "Vetor", "Índice de matriz fora dos limites.", "", 0
Terminar se
Se element_count = 0 Então
Chame InternalElement(0, elemento)
ElseIf índice = element_count Então
Chame InternalElement(element_count, elemento)
Outro
Escureça eu
Para i = element_count Para indexar + 1 Etapa -1
Chame InternalElement(i, vector_datas(i - 1))
Próximo
Chame InternalElement(índice, elemento)
Terminar se
contagem_elementos = contagem_elementos + 1
Se element_count = max_capacity Então
max_capacity = contagem_elementos + incremento_de capacidade
ReDim Preservar vector_datas(max_capacity)
Terminar se
Função final
Função pública SetElementAt(índice, elemento)
Se índice <0 Ou índice > element_count - 1 Então
Err.Raise 20903, "Vetor", "Índice de matriz fora dos limites.", "", 0
Terminar se
Chame InternalElement(índice, elemento)
Função final
Função privada InternalElement (índice, elemento)
Em caso de erro, retomar o próximo
Se IsObject(elemento) Então
Definir vector_datas(índice) = elemento
Outro
vetor_dados(índice) = elemento
Terminar se
Se Err.Number <> 0 Então
MsgBox("Erro do elemento interno do vetor: " & vbCrLf & "Fonte do erro: " & Err.Source & vbCrLf & "Número do erro: " & Err.Number & vbCrLf & "Descrição do erro: " & Err.Description & vbCrLf)
Err.Clear 'Limpa informações de erro
Terminar se
Função final
Private Sub Class_Terminate() 'Destruição de classe
Erase vector_datas 'Libera a memória ocupada pelo array e define cada elemento como Nothing
capacidade_inicial = Vazio
capacidade_increment = Vazio
element_count = Vazio
max_capacity = Vazio
Finalizar sub
Fim da aula
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: