que estoy teniendo un problema con mi compilación de código en Delphi 2006. Estoy utilizando una matriz de cadenas estáticas:Delphi error E2283 Demasiados constantes locales
fsi_names : array [0..FSI_NUM_VARS-1] of string;
En un procedimiento que llamo al comienzo del programa, Asigno valores a esta matriz. Este código se genera automáticamente por un script que escribí. Consta de líneas similares a la siguiente:
fsi_names[idFSI_FLIGHT_PATH_ANGLE] := 'FSI_FLIGHT_PATH_ANGLE';
En general, hay alrededor de 2000 elementos para asignar en esta matriz. No pude encontrar el número mágico donde el compilador muere, pero funciona con 1853 y no con 2109.
Lo que pasa es que necesito esta matriz para convertir una ID (que es el índice de la matriz)) a un nombre como una cadena para varias aplicaciones.
Sé que si pudiera dividir la lista de tareas y poner las partes en diferentes procedimientos, entonces funciona. Pero dado que el código se genera automáticamente y cambia con frecuencia, este método no es muy cómodo.
También pensé en poner el contenido en un archivo y leerlo en tiempo de ejecución, pero prefiero mantener el número de archivos que envío al mínimo. Además, me gustaría proteger los contenidos del usuario promedio, para que no se meta con ellos.
¿Tiene alguna idea de cómo podría superar la limitación del compilador o cambiar mi código para lograr mi objetivo?
La ayuda es muy apreciada.
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_too_many_consts_xml.html –
¿Se aplica el límite si fuera ¿un procedimiento? Ahí es donde lo pondría de todos modos. – mj2008
@Andreas Rejbrand: Gracias por este consejo, también lo encontré a través de Google, pero no menciona una cifra límite, y espero obtener algunos consejos de todos los programadores experimentados aquí :-) – Flo