Есть ли способ в Delphi объявить массив строк, например следующий?
{'first','second','third'}
попробуйте это
Const
Elements =3;
MyArray : array [1..Elements] of string = ('element 1','element 2','element 3');
В XE7 вы можете объявить константу динамического массива следующим образом:
const
MyArray: TArray<String> = ['First','Second','Third'];
Вы можете использовать динамические массивы и попробовать следующее:
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;
Вы можете сделать это косвенным образом. Создайте такую функцию, как:
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;