Difference between revisions of "TStringList-TStrings Tutorial"

From Lazarus wiki
Jump to navigationJump to search
(category and style)
(Dynamic string array comparison)
Line 71: Line 71:
  
 
You just opened a file,edited it and saved it right back to were it was!
 
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:
 +
 +
{| border=1 cellspacing=0 cellpadding=3
 +
|-
 +
! 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 || 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===
 
===Keep Learning===
You can learn all the different procedures,functions and property's Here: [http://www.freepascal.org/docs-html/rtl/classes/tstringlist.html]
+
You can learn all the different procedures, functions and property's see [http://www.freepascal.org/docs-html/rtl/classes/tstringlist.html TStringList documentation]
  
 
IF you feel i might have left something out, '''Modify At Will!'''
 
IF you feel i might have left something out, '''Modify At Will!'''

Revision as of 22:49, 9 September 2010

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 rlse 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 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!