https://foro.gambas-es.org/viewtopic.php?f=1&t=993
-----------------------------------
fdogilna
Martes, 05 Octobre 2010, 10:58

Array Multidimensional.
-----------------------------------
Hola, tengo un problema con un array multidimensional. 
A la hora de hacer una asignación de valor de cada uno de sus elementos, cuando llega a una determinada cantidad me da error de asignación.

"Invalid asignment in line xxx..."

Supongo que al no dar error en la definición y reserva del espacio , pero si en la asignación, pudiera ser un bug del Gambas ya que se trata de un array bastante grande.

Os dejo una parte del código con las líneas de asignación del array por si queréis hacer la prueba.
A mi me da error en la línea [64,2,6].

[code linenumbers=false syntax=gambas]
' Definición del array
Public Fonts2[255,8,8] as integer

' Asignación del array

Fonts2[0, 0, 0] = 0 
Fonts2[0, 0, 1] = 0 
Fonts2[0, 0, 2] = 0 
Fonts2[0, 0, 3] = 0 
Fonts2[0, 0, 4] = 0 
Fonts2[0, 0, 5] = 0 
Fonts2[0, 0, 6] = 0 
Fonts2[0, 0, 7] = 0 
Fonts2[0, 1, 0] = 0 
Fonts2[0, 1, 1] = 0 
Fonts2[0, 1, 2] = 0 
Fonts2[0, 1, 3] = 0 
Fonts2[0, 1, 4] = 0 
Fonts2[0, 1, 5] = 0 
Fonts2[0, 1, 6] = 0 
Fonts2[0, 1, 7] = 0 
Fonts2[0, 2, 0] = 0 
Fonts2[0, 2, 1] = 0 
Fonts2[0, 2, 2] = 0 
Fonts2[0, 2, 3] = 0 
Fonts2[0, 2, 4] = 0 
Fonts2[0, 2, 5] = 0 
Fonts2[0, 2, 6] = 0 
Fonts2[0, 2, 7] = 0 
Fonts2[0, 3, 0] = 0 
Fonts2[0, 3, 1] = 0 
Fonts2[0, 3, 2] = 0 
Fonts2[0, 3, 3] = 0 
Fonts2[0, 3, 4] = 0 
Fonts2[0, 3, 5] = 0 
Fonts2[0, 3, 6] = 0 
Fonts2[0, 3, 7] = 0 
Fonts2[0, 4, 0] = 0 
Fonts2[0, 4, 1] = 0 
Fonts2[0, 4, 2] = 0 
Fonts2[0, 4, 3] = 0 
Fonts2[0, 4, 4] = 0 
Fonts2[0, 4, 5] = 0 
Fonts2[0, 4, 6] = 0 
Fonts2[0, 4, 7] = 0 
Fonts2[0, 5, 0] = 0 
Fonts2[0, 5, 1] = 0 
Fonts2[0, 5, 2] = 0 
Fonts2[0, 5, 3] = 0 
Fonts2[0, 5, 4] = 0 
' ... sucesivamente hasta...
Fonts2[255, 8, 8] = 0 
[/code]


-----------------------------------
fdogilna
Jueves, 07 Octobre 2010, 16:46

Re: Array Multidimensional !AYUDA¡.
-----------------------------------
Hola a todos, perdonar que use una respuesta para volver a hacer una petición, pero así sigo el hilo.

[b]¿Podría decirme alguien, si es tan amable, si le da error la asignación de una array como el que comento?[/b]

Public Fonts2[255,8,8] as integer 

A mi me da error en la línea de asignación correspondiente al elemento [64,2,6].

Si os preguntais el porqué de este array, lo necesito para definirme 255 tablas de 8 x 8, correspondiente a los puntos de definicion de unos caracteres, para posteriormente representarlos gráficamente.

Gracias


-----------------------------------
jguardon
Jueves, 07 Octobre 2010, 17:01

Re: Array Multidimensional.
-----------------------------------
Es imposible probar tu ejemplo, entre otras cosas porque estaba truncado debido a su enorme extensión. (He editado tu mensaje para resumirlo).

En cualquier caso, lo que me imagino es que se sale de los límites de tu memoria... o de lo que puede manejar Gambas.

Aunque no entiendo muy bien lo que intentas hacer, ¿no sería posible hacerlo con dos arrays, uno de una dimensión (tablas)  y el resto de dos (matriz de puntos)?

Saludos


-----------------------------------
fdogilna
Jueves, 07 Octobre 2010, 18:37

Re: Array Multidimensional.
-----------------------------------
Gracias por contestar, perdón por el ejemplo pero queria que se copiase y pegase para que no se tuviera que teclear código.

Según los manuales de gambas, los limites de arrays son los límites de la memoria, pero 15k de espacio, de los cuales me da error a los 4k, no creo que sea un peso importante en la memoria. Además da igual si es tipo integer o tipo boolean, el fallo es en el mismo sitio  ??

El motivo de este array es definirme una tabla de caracteres (FONTS) de 8x8 puntos, por lo tanto necesito 255 tablas de 8x8 en un array. De esta forma traduzco el valor ASCII de un caracter, lo localizo en el array (1er Parámetro) y represento sus puntos de la matriz de 8x8 (2 y 3er Parametro.

Un saludo.


