Embarcadero Delphi
TStringList 클래스
수색…
소개
TStringList 는 VCL의 TStrings 클래스의 자손입니다. TStringList는 문자열 목록을 저장하고 조작하는 데 사용할 수 있습니다. 원래 String을 대상으로하지만,이 클래스를 사용하여 모든 유형의 객체를 조작 할 수도 있습니다.
TStringList는 String 목록을 유지할 목적이있는 경우 VCL에서 널리 사용됩니다. TStringList는 높은 수준의 사용자 지정과 손쉬운 조작을 제공하는 다양한 메서드 집합을 지원합니다.
다음 예제에서는 TStringList 객체의 생성, 문자열 추가, 정렬, 검색 및 해제를 보여줍니다.
procedure StringListDemo;
var
MyStringList: TStringList;
i: Integer;
Begin
//Create the object
MyStringList := TStringList.Create();
try
//Add items
MyStringList.Add('Zebra');
MyStringList.Add('Elephant');
MyStringList.Add('Tiger');
//Sort in the ascending order
MyStringList.Sort;
//Output
for i:=0 to MyStringList.Count - 1 do
WriteLn(MyStringList[i]);
finally
//Destroy the object
MyStringList.Free;
end;
end;
TStringList에는 문자열 조작, 정렬, 색인, 키 - 값 쌍 및 구분 기호 분리 등 다양한 사용자 사례가 있습니다.
키 - 값 페어링
TStringList를 사용하여 키 - 값 쌍을 저장할 수 있습니다. 예를 들어, 설정을 저장하려는 경우 유용 할 수 있습니다. 설정은 키 (설정의 식별자)와 값으로 구성됩니다. 각 키 - 값 쌍은 KeyList의 한 행에 Key = Value 형식으로 저장됩니다.
procedure Demo(const FileName: string = '');
var
SL: TStringList;
i: Integer;
begin
SL:= TStringList.Create;
try
//Adding a Key-Value pair can be done this way
SL.Values['FirstName']:= 'John'; //Key is 'FirstName', Value is 'John'
SL.Values['LastName']:= 'Doe'; //Key is 'LastName', Value is 'Doe'
//or this way
SL.Add('City=Berlin'); //Key ist 'City', Value is 'Berlin'
//you can get the key of a given Index
IF SL.Names[0] = 'FirstName' THEN
begin
//and change the key at an index
SL.Names[0]:= '1stName'; //Key is now "1stName", Value remains "John"
end;
//you can get the value of a key
s:= SL.Values['City']; //s now is set to 'Berlin'
//and overwrite a value
SL.Values['City']:= 'New York';
//if desired, it can be saved to an file
IF (FileName <> '') THEN
begin
SL.SaveToFile(FileName);
end;
finally
SL.Free;
end;
end;
이 예제에서 StringList는 소멸되기 전에 다음 내용을가집니다.
1stName=John
LastName=Doe
City=New York
성능에 대한 참고 사항
TStringList
모든 항목을 반복적으로 반복하여 모든 항목 내의 구분 기호를 검색하고 이름 부분을 지정된 키와 비교하여 키 검색을 수행합니다. 성능에 큰 영향을 미칠 필요는 없으므로이 메커니즘은 거의 중요하지 않은 거의 반복되지 않는 장소에서만 사용해야합니다. 성능 문제가있는 경우 해시 테이블 검색을 구현하는 System.Generics.Collections
TDictionary<TKey,TValue>
를 사용해야하며 정렬 된 TStringList
키를 Object
-s로 저장된 값 으로 유지하여 이진 찾기 알고리즘을 사용해야합니다.