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;