Hola:
¿Cuál es el límite de variables locales?.
Me pasa que cuando me excedo de 200 y pico el programa se vuelve tonto, pues me pasa a ejecutar la siguiente opción que yo no la llamo.
Muchas gracias ![]()
Eduardo
Hola:
¿Cuál es el límite de variables locales?.
Me pasa que cuando me excedo de 200 y pico el programa se vuelve tonto, pues me pasa a ejecutar la siguiente opción que yo no la llamo.
Muchas gracias ![]()
????
No hay limite para variables LOCALES.
Al salir del módulo dice:
ACTIVATE DIALOG oDlg...
RELEASE ALL
Segun tengo entendido... el solo hecho de salir de la Funtion o Procedure que "contiene" las variables locales estas desaparecen.. por lo que no habria necesidad de usar el RELEASE ALL
Si estoy equivocado.. que alguien me ilumine..
SALUDOS
Hace unos años tuve un problema parecido: viewtopic.php?f=6&t=4927&p=21809#p21809
La verdad es que no sé si se solucionó este asunto pues resolví el problema por otros caminos, y con posterioridad no he tenido que abordarlo nuevamente.
Hola Manuel,
Muchas gracias. Al final he tenido que pulir el número de variables y funciona OK.
El bug de Harbour sigue sin ser corregido.
Un saludo
Mgsoft,
¿ Que version de harbour usas ?, asi se prodria hacer un ejemplo que falle para enviarlo a los programadores de harbour para que lo solucionen.
Atte.,
Lautaro Moreira
De donde surge la necesidad de tener tanta cantidad de variables locales?
No debería implementarse de otra forma, ejemplo con arrays?
Y con esta pregunta no estoy intentando quitar responsabilidad del problema, sino más bien tomar en cuenta que no es bueno tener una mega-función para hacer mil cosas sino funciones más chicas que tengan la oportunidad de reutilizarse y ser más fácil de depurar.
Y si, por ejemplo, se tienen tantas variables locales porque se tiene una gran pantalla de edición con una gran cantidad de controles, quizás también podría implementarse usando arrays. El código sería más fácil de mantener y agregar o quitar controles mucho más simple.
El 200 y pico tienen que ser 254 o 255.
Respecto del límite, probablemente esté por las 32000 variables.
En algunas versiones anteriores de xHarbour hubo problemas cuando llegabas o pasabas de las 255 variables locales por varias razones.
Hay un PCode al inicio de cada función que indica la cantidad de parámetros y variables locales. El PCode normal tiene 2 bytes, entonces podría servir para indicar hasta 255 parámetros y 255 variables locales.
Pero si se pasa de esa cantidad de parámetros, existe otro PCode que indica la cantidad extra de parámetros.
Respecto de las variables locales, si se pasa de 255 hay otro PCode que tiene 3 bytes e indica la cantidad de variables locales con 2 bytes.
Por eso digo que habría que ver qué compilador y versión del mismo está usando para orientar la búsqueda del problema.