Pregunta

Im que consigue este mensaje de error al azar:

Índice fuera de los límites de la matriz.

Y apunta a esta línea:

Dim placename As String = RichTextBox1.Lines(0)
¿Fue útil?

Solución

Eso significa que su RichTextBox1 no tiene líneas en él. Reemplazar con que:

Dim placename As String
If RichTextBox1.Lines.Count() > 0 Then
    placename=RichTextBox1.Lines(0)
Else
    placename = String.Empty
End if

Más información:
Imagínese una matriz como una calle y cada elemento de la matriz es una casa. Si hay 30 casas en la calle, y yo quiero encontrar casa número 20, comienzo en el comienzo (1) y subir hasta llegar a 20. Con una matriz, 0 es donde se inicia en vez de 1, por lo que una matriz con 30 elementos, contiene índices 0-29. Ahora, de vuelta a la analogía de la calle. Imagino que voy a la calle y número de casa pido que existen 31. casa duerma porque hay sólo 30 casas. Esto es efectivamente lo que el programa que está diciendo. Se está diciendo 'no hay suficientes elementos de la matriz para que consiga a la que pidió'. Por lo que solicitó el elemento 0 de la matriz de líneas, diciendo efectivamente 'Dame la primera línea'. Ahora, si hay 0 líneas en el cuadro de texto, a continuación, la primera línea no existe y obtendrá este error.

Otros consejos

Índice fuera de los límites de la matriz

Este mensaje de error normalmente significa que ha pedido un objeto de la matriz en un lugar que es nulo, o no tiene nada allí. Esto sucede en casos como el siguiente;

myArray = [0,1,2,3];

trace(myArray[6]);

Como no hay nada en la matriz en el índice 6, está fuera de los límites. Si la matriz está vacía en el momento de la llamada, se le dará el error para un objeto en el índice 0.

No se puede decir nada más que eso por la cantidad de código que usted envió. Intente comprobar para asegurarse de que la matriz se ha rellenado antes de que la línea se llama.

Tal vez su lector de SQL no obtuvo ningún filas asociadas con el índice que diste. Ese fue el caso para mí; Me estaba columnas que no estaban en la base de datos.

Se puede cambiar el código de la siguiente manera:

Dim placename As String
If RichTextBox1.Lines.Count > 0 Then placename = RichTextBox1.Lines(0)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top