Jump to content

problema em defenir uma matriz(array)


seminas
 Share

Recommended Posts

Boas! Antes da minha questão quero aqui dar os meus parabéns ao vosso site está excelente, já há alguns dias que venho cá coscuvilhar, e acho mesmo muito bom! e então a minha duvida é o seguinte, estou a tentar aprender outra vez vb6, há alguns anos já tinha começado mas parei e agora por gosto só, estou outra vez a dar uns passos,bom queria  saber se é possível defenir uma matriz em que eu não sei á partida quantos elementos essa matriz vai ter porque é algo que o utilizador vai dizer,tipo:

dim x as integer

dim n_vaos(x) as integer

x=text1.text

algo asiim do género só que ainda não consegui porque dá-me sempre erro!!

Obrigado!

Link to comment
Share on other sites

Repara no que estás a fazer:

dim x as integer 'Dimensiona a variável, e com vb esta é automaticamente inicializada a zero(0)
dim n_vaos(x) as integer 'Declara um array de dimensões x. Neste caso 0.

Explica-me como vais criar um array com zero elementos?

"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Link to comment
Share on other sites

Dois exemplos:

- Usando array simples -

Dim n_vaos() As Integer

Private Sub Command1_Click()
    Dim total As Integer

    ' Verifica o tamanho do array +1
    total = UBound(n_vaos) + 1
    ' Redimenciona o array
    ReDim Preserve n_vaos(total)
    ' Coloca o valor no array
    n_vaos(total) = 1

End Sub

Private Sub Form_Load()
    ' Inicia o array
    ReDim Preserve n_vaos(0)
End Sub

- Usando colecções -

Dim c As New Collection

Private Sub Command1_Click()
    c.Add "Texto"
End Sub
Link to comment
Share on other sites

AH!! erro básico, não passar valor para a variável,  ?

jpaulino ainda sou muito verde,podes dar-me uma luz acerca do ubound?? se bem percebi é para verificar o tamanho da variável??

obrigado a todos!! 👍  

Link to comment
Share on other sites

jpaulino ainda sou muito verde,podes dar-me uma luz acerca do ubound?? se bem percebi é para verificar o tamanho da variável??

O ubound verifica o tamanho do array não o tamanho da variável. Se tens 10 elementos ele retoma-te 9 porque o array tem base 0.

Link to comment
Share on other sites

O Redim redimenciona o número de elementos no array. Por isso vais buscar o tamanho actual e aumentas mais um (que é o que vais inserir).

O preserve é para preservar os anteriores, ou seja, manter.

No caso das collections não tem dimenção pré-definida e podesse simplesmente adicionar itens.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.