在设计时存储"记录数组"的最佳方式

sma*_*ins 2 delphi

我有一组数据需要在设计时存储,以便在运行时构造一组组件的内容.

像这样的东西:

type
  TVulnerabilityData = record
    Vulnerability: TVulnerability;
    Name: string;
    Description: string;
    ErrorMessage: string;
  end;
Run Code Online (Sandbox Code Playgroud)

在设计时存储这些数据以便以后在运行时检索的最佳方法是什么?我将有大约20条记录,我知道每条"记录"的所有内容,但我坚持认为存储数据的最佳方式.

我提出的唯一半优雅的想法是"构建"单元初始化的每条记录,如下所示:

var
  VulnerabilityData: array[Low(TVulnerability)..High(TVulnerability)] of TVulnerabilityData;

....

initialization
  VulnerabilityData[0].Vulnerability := vVulnerability1;
  VulnerabilityData[0].Name := 'Name of Vulnerability1';
  VulnerabilityData[0].Description := 'Description of Vulnerability1';
  VulnerabilityData[0].ErrorMessage := 'Error Message of Vulnerability1';

  VulnerabilityData[1]......
  .....
  VulnerabilityData[20]......
Run Code Online (Sandbox Code Playgroud)

是否有比这更好和/或更优雅的解决方案?

感谢您阅读以及您可能提供的任何见解.

Ken*_*ssa 8

您也可以将数组声明为consts并初始化它...

const
  VulnerabilityData: array[Low(TVulnerability)..High(TVulnerability)] of TVulnerabilityData =
( 
    (Vulnerability : vVulnerability1; Name : Name1; Description : Description1;  ErrorMessage : ErrorMessage1),
    (Vulnerability : vVulnerability2; Name : Name2; Description : Description2;  ErrorMessage : ErrorMessage2),
[...]
    (Vulnerability : vVulnerabilityX; Name : NameX; Description : DescriptionX;  ErrorMessage : ErrorMessageX)
    )
);
Run Code Online (Sandbox Code Playgroud)

我在这台计算机上没有IDE来仔细检查语法...可能是逗号或两个缺少.但是我想你应该这样做.

  • 这是到目前为止发布的问题的唯一直接答案:使用_const_,这就是它的用途.至于代码,使用TVulnerabilityData_的_array [TVulnerability],不要搞砸Low和High. (3认同)