Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ninto33 en 8 Febrero 2010, 06:02 am



Título: Problema El subindice esta fuera de intervalo
Publicado por: ninto33 en 8 Febrero 2010, 06:02 am
Private Type datos
nombre As String
cara As String
cuerpo As String
pelo As String
inteligencia As String
End Type
Dim juaz As Integer
Dim mayor As Long
Dim personas() As datos
Dim i As Integer
--------------------------------------------------------
Private Sub Command1_Click()
If Text7.Text = "" Then
MsgBox "Por favor ingrese la cantidad de personas a ingresar"
ElseIf Text1.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Then
MsgBox "Complete todos los campos por favor"
Else
juaz = Val(Text7.Text)
For i = 0 To juaz
personas(i).nombre = Text1.Text ------------------------------------------> aka esta el problema
personas(i).cara = Text3.Text
personas(i).pelo = Text4.Text
personas(i).inteligencia = Text5.Text
personas(i).cuerpo = Text6.Text
Next
End If
End Sub



Título: Re: Problema El subindice esta fuera de intervalo
Publicado por: Shell Root en 8 Febrero 2010, 06:13 am
Personas() es una matriz/vector?, de cuantas dimensiones la tienes?


Título: Re: Problema El subindice esta fuera de intervalo
Publicado por: ninto33 en 8 Febrero 2010, 06:18 am
personas() seria infinito , cosa que el usuario la defina. No puedo poner personas(1 to 3) xq nose cuantas personas se introducirian.


Título: Re: Problema El subindice esta fuera de intervalo
Publicado por: ninto33 en 8 Febrero 2010, 06:22 am
recien acabo de intentar poniendo 1 to 3 y funciona. Entonces no puedo declararlo infinito?


Título: Re: Problema El subindice esta fuera de intervalo
Publicado por: BlackZeroX en 8 Febrero 2010, 08:18 am
recien acabo de intentar poniendo 1 to 3 y funciona. Entonces no puedo declararlo infinito?

solo de forma indefinida el inficinito ni una pc q conosca llega a tanto a si q ese termino referidoa a una pc no es valido.

Lo puedes declarar de forma indefinida es decir

dim matrix() as tipodato

redim matrix(cantidad)  ' redimenciona y vacia los datos

o

redim preserve matrix(cantidad) ' redimenciona y preserva los datos anteriores de forma intacta

Para eliminar o vaciar por completo usas

erase matrix

Notase que cantidad puede ser un numero 0 hasta X ( 0 to X ) o de Y to X siendo Y<X

Sangrientas Lunas!ˇ.y
.


Título: Re: Problema El subindice esta fuera de intervalo
Publicado por: BlackZeroX en 8 Febrero 2010, 08:19 am
Personas() es una matriz/vector?, de cuantas dimensiones la tienes?

usa una estructura declarada en una matrix