Delphi中有没有办法声明一个字符串数组,如下一个?
{'first','second','third'}
答案 0 :(得分:45)
试试这个
Const
Elements =3;
MyArray : array [1..Elements] of string = ('element 1','element 2','element 3');
答案 1 :(得分:40)
在XE7中,您可以声明一个动态数组常量,如下所示:
const
MyArray: TArray<String> = ['First','Second','Third'];
答案 2 :(得分:16)
您可以使用动态数组并尝试:
var
FMyArray: TArray<string>;
function MyArray: TArray<string>;
begin
if Length(FMyArray) = 0 then
FMyArray := TArray<string>.Create('One', 'Two', 'Three');
Result := FMyArray;
end;
虽然这确实对堆上的动态数组进行了运行时初始化,但它也表明Delphi支持动态数组上的“伪构造函数”,允许就地初始化。 (注意:上面的代码不是线程安全的。)
现在你需要做的就是找出数组的长度,使用Length()标准函数,或者找到允许的索引范围,使用Low()和High()标准函数。
如果您使用的是旧版本的Delphi,请将TArray替换为您自己的动态数组字符串类型,例如:
type
TStringArray = array of string;
答案 3 :(得分:0)
您可以间接方式执行此操作。创建一个像:
这样的函数procedure assignStringArray(var rasVelden: ArrayOfString; const asVeldenIn: Array Of String);
var
iLengte, iT1: Integer;
begin
iLengte := Length(asVeldenIn);
SetLength(rasVelden, iLengte);
for iT1 := iLengte-1 downto 0 do
rasVelden[iT1] := asVeldenIn[iT1];
end;
并将此函数称为:
assignStringArray(asVelden, ['String1', 'String2', 'String3']);
其中:
asVelden: ArrayOfString;