Difference between revisions of "TStringList-TStrings Tutorial"

From Lazarus wiki
Jump to navigationJump to search
Line 50: Line 50:
 
       Writeln('String: ' + S + ' was Added!');
 
       Writeln('String: ' + S + ' was Added!');
 
       Writeln('Index is: ' + IntToStr(Counter); // The counter will always become the index of the last thing added
 
       Writeln('Index is: ' + IntToStr(Counter); // The counter will always become the index of the last thing added
     end rlse Writeln('Nothing Inputed :D');
+
     end else Writeln('Nothing Inputed :D');
 
   until (S = 'EXIT');
 
   until (S = 'EXIT');
 
end;</Delphi>
 
end;</Delphi>

Revision as of 19:56, 16 October 2011

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!