Delphi错误E2283太多局部常量

Delphi错误E2283太多局部常量,第1张

概述我在Delphi 2006中的代码有编译问题.我使用的是静态String数组: fsi_names : array [0..FSI_NUM_VARS-1] of string; 在我在程序开始时调用的过程中,我为这个数组赋值.这段代码是由我编写的脚本自动生成的.它由与下一行类似的行组成: fsi_names[idFSI_FLIGHT_PATH_ANGLE] := 'FSI_FLIGHT_PATH_ 我在Delphi 2006中的代码有编译问题.我使用的是静态String数组:

fsi_names : array [0..FSI_NUM_VARS-1] of string;

在我在程序开始时调用的过程中,我为这个数组赋值.这段代码是由我编写的脚本自动生成的.它由与下一行类似的行组成:

fsi_names[IDFSI_FliGHT_PATH_ANGLE] := 'FSI_FliGHT_PATH_ANGLE';

总共大约有2000个元素要在这个数组中分配.我无法找到编译器死亡的神奇数字,但它适用于1853而不适用于2109.

问题是我需要这个数组将ID(它是数组的索引)转换为名称作为各种应用程序的字符串.

我知道如果我将分配的作业列表拆分并将各部分放入不同的程序中,那么它就可以了.但由于代码是自动生成的并经常更改,因此这种方法不太舒服.

我还想过将内容放入一个文件并在运行时读取它,但我宁愿保留我必须发送的文件数量.另外,我想保护普通用户的内容,这样他就不会乱用它.

您是否知道如何克服编译器的限制,或者更改我的代码以实现我的目标?

非常感谢帮助.

解决方法 如果我是你,我会创建一个带有标识符的简单ASCII文本文件,以便该文件的行IDFSI_FliGHT_PATH_ANGLE 1包含字符串“FSI_FliGHT_PATH_ANGLE”.然后我会将此文件添加到应用程序的资源中.通过这样做,数据将包含在EXE中,您可以在运行时轻松读取数据:

function GetNthString(const N: integer): string;var  RS: TResourceStream;begin  RS := TResourceStream.Create(hInstance,'nameOFRESOURCE',RT_RcdaTA);  with TStringList.Create do    try      LoadFromStream(RS);      result := Strings[N];    finally      Free;    end;  RS.Free;end;
总结

以上是内存溢出为你收集整理的Delphi错误E2283太多局部常量全部内容,希望文章能够帮你解决Delphi错误E2283太多局部常量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1272012.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存