J'ai un problème de compilation avec mon code Delphi 2006. J'utilise un tableau de chaînes statiques:Delphi Erreur E2283 Trop de constantes locales
fsi_names : array [0..FSI_NUM_VARS-1] of string;
Dans une procédure que j'appelle au début du programme, J'attribue des valeurs à ce tableau. Ce code est généré automatiquement par un script que j'ai écrit. Il se compose de lignes similaires à la suivante:
fsi_names[idFSI_FLIGHT_PATH_ANGLE] := 'FSI_FLIGHT_PATH_ANGLE';
Il y a environ 2000 éléments à affecter dans ce tableau. Je n'ai pas pu trouver le nombre magique où meurt le compilateur, mais ça marche avec 1853 et non avec 2109.
Le truc c'est que j'ai besoin de ce tableau pour convertir un ID (qui est l'index du tableau) à un nom sous forme de chaîne pour diverses applications.
Je sais que si je diviserais la liste des affectations et mettrais les parties dans différentes procédures, alors cela fonctionnerait. Mais puisque le code est généré automatiquement et change souvent, cette méthode n'est pas très confortable.
Je pensais aussi mettre le contenu dans un fichier et le lire au moment de l'exécution, mais je préférerais que le nombre de fichiers que je dois expédier soit réduit au minimum. En outre, je voudrais protéger le contenu de l'utilisateur moyen, afin qu'il ne plaisante pas avec lui.
Avez-vous une idée de comment surmonter la limitation du compilateur ou changer mon code pour atteindre mon objectif?
L'aide est très appréciée.
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_too_many_consts_xml.html –
Est-ce que la limite applicable si l'extérieur une procédure? Voilà où je l'ai mis de toute façon. – mj2008
@Andreas Rejbrand: Merci pour cet indice - je l'ai également trouvé via Google, mais il ne mentionne pas un chiffre limitant, et j'espère obtenir quelques conseils de tous les programmeurs expérimentés ici :-) – Flo