Delphi 将数据存储在数组中并检索它
Delphi Storing data in Array and retrieve it
我需要像这样在数组中存储两个字符串,并在另一个函数中检索值以使用它。
Date Start
Date End
VALUE_START
VALUE_END
VALUE_START2
VALUE_END2
我认为正确的方法是使用此变量 StoringData : TArray<String>
,但我如何使用 VALUE_START 和 VALUE_END 对其进行赋值?
首先你必须定义一个可以容纳两个字符串的数据类型:
type
TPeriod = record
DateStart : String; // Isn't TDateTime better than String here ?
DateEnd : String;
end;
然后你可以声明一个动态数组如果那个数据类型
var
StoringData : TArray<TPeriod>;
在某些时候,您必须为数组分配 space(这是一个动态数组,因此在声明时没有分配 space)
SetLength(StoringData, TheSizeYouNeed);
您可以像这样访问数组元素:
StoringData[0].DateStart := '04/05/2021';
StoringData[0].DateEnd := '06/05/2021';
StoringData[1].DateStart := '04/06/2021';
StoringData[1].DateEnd := '06/06/2021';
您不需要释放已分配的 space,它会自动完成,但如果您需要回收内存,您可以这样做。使用零大小调用 SetLength。
您可以调整数组的大小。将保留现有数据(如果缩小尺寸,当然会丢失一些数据):
SetLength(StoringData, 3); // Add a third more row
// Assign a value
StoringData[2].DateStart := '04/07/2021';
StoringData[2].DateEnd := '06/07/2021';
创建一个二维数组,第一维是动态的,第二维是静态的:
TYPE
TPeriod = ARRAY[1..2] OF STRING;
TPeriods = TArray<TPeriod>;
VAR
Periods : TPeriods;
BEGIN
SetLength(Periods,2);
Periods[0,1]:='Start Date 1';
Periods[0,2]:='End Date 1';
Periods[1,1]:='Start Date 2';
Periods[1,2]:='End Date 2';
END.
我需要像这样在数组中存储两个字符串,并在另一个函数中检索值以使用它。
Date Start | Date End |
---|---|
VALUE_START | VALUE_END |
VALUE_START2 | VALUE_END2 |
我认为正确的方法是使用此变量 StoringData : TArray<String>
,但我如何使用 VALUE_START 和 VALUE_END 对其进行赋值?
首先你必须定义一个可以容纳两个字符串的数据类型:
type
TPeriod = record
DateStart : String; // Isn't TDateTime better than String here ?
DateEnd : String;
end;
然后你可以声明一个动态数组如果那个数据类型
var
StoringData : TArray<TPeriod>;
在某些时候,您必须为数组分配 space(这是一个动态数组,因此在声明时没有分配 space)
SetLength(StoringData, TheSizeYouNeed);
您可以像这样访问数组元素:
StoringData[0].DateStart := '04/05/2021';
StoringData[0].DateEnd := '06/05/2021';
StoringData[1].DateStart := '04/06/2021';
StoringData[1].DateEnd := '06/06/2021';
您不需要释放已分配的 space,它会自动完成,但如果您需要回收内存,您可以这样做。使用零大小调用 SetLength。
您可以调整数组的大小。将保留现有数据(如果缩小尺寸,当然会丢失一些数据):
SetLength(StoringData, 3); // Add a third more row
// Assign a value
StoringData[2].DateStart := '04/07/2021';
StoringData[2].DateEnd := '06/07/2021';
创建一个二维数组,第一维是动态的,第二维是静态的:
TYPE
TPeriod = ARRAY[1..2] OF STRING;
TPeriods = TArray<TPeriod>;
VAR
Periods : TPeriods;
BEGIN
SetLength(Periods,2);
Periods[0,1]:='Start Date 1';
Periods[0,2]:='End Date 1';
Periods[1,1]:='Start Date 2';
Periods[1,2]:='End Date 2';
END.