TStringList-TStrings Tutorial
TStringList
The TStringList(Or TStrings) is much like a fancy dynamic array or Set of Strings(Not Possible). It will come in handy alot when programming and I'm going to teach you basic TStringList Usage!
<Delphi>program StrList;
var
Str: TStringList;
begin
Str := TStringList.Create; // This is needed when using this class(or most classes) Str.Add('Some String!'); Readln;
end;</Delphi>
This is a simple program(Console) that will create and add one string to a string list! Now heres some things you should know:
Create - Will create the string list for modifying.
Count - Is a counter for the amount of strings in the List. It is a zero based counter
Add - Will allow you to add one string to the string list. It is a Function that will return the Index of the String. This is Were the counter comes in handy.
Delete - Will delete a string from the string list. Just know that you do not simply input the string, you have to input the index of the string.(Like I said. Its like a fancy Dynamic Array)
IndexOf - Will allow you to return the index of the string in the list. If it is not found it returns -1.
Clear - Will clear the list.
Example
How about a more juicy example, Eh?
<Delphi>program StrList;
var
Str: TStringList; S: String; Counter: Integer;
begin
Str := TStringList.Create; Writeln('String List Test'); repeat Writeln('Input a string to add'); Readln(S); if (S = 'EXIT') then Halt; if not (S = ) then begin Counter := Str.Add(S); Writeln('String: ' + S + ' was Added!'); Writeln('Index is: ' + IntToStr(Counter); // The counter will always become the index of the last thing added end else Writeln('Nothing Inputed :D'); until (S = 'EXIT');
end;</Delphi>
File Handling
When using the TStringList you have 2 main file handling procedures. SaveToFile And LoadFromFile By Using SavetoFile it will save all strings in the list to a file. LoadFromFile will open the file and add the file data to the list string by string.
<Delphi>var
Str: TStringList;
begin
Str := TStringList.Create; Str.LoadFromFile('SomeFile.txt'); Str.Add('Hello'); Str.SaveToFile('SomeFile.txt');
end;</Delphi>
You just opened a file,edited it and saved it right back to were it was!
Dynamic string array comparison
TStringList is simply advanced object version of dynamic string array. Some methods have analogy:
Operation | array of string | TStringList |
---|---|---|
Variable declaration | StringList: array of string; | StringList: TStringList; |
Initialization | implicit constructor | StringList := TStringList.Create |
Set size | SetLength(StringList, X); | StringList.Size := X; |
Get size | X := Length(StringList); | X := StringList.Size; |
Add item | SetLength(StringList, Length(StringList) + 1); StringList[Length(StringList) - 1] := X; | StringList.Add(X); |
Delete item | for I := Index to Length(StringList) - 2 do StringList[I] := StringList[I + 1]; SetLength(StringList, Length(StringList) - 1); | StringList.Delete(Index); |
Remove all items | SetLength(StringList, 0); | StringList.Clear; |
Finalization | implicit destructor | StringList.Free; |
But TStringList offer much more functionality than basic structure as dynamic array.
Keep Learning
You can learn all the different procedures, functions and property's see TStringList documentation
IF you feel i might have left something out, Modify At Will!
Hope I helped!