From Clomosy Docs
TclStringList is a convenient class used to store and manage an array of strings, providing a list-like structure. TclStringList enables the ability to add, remove, sort, search, and perform other operations on string elements within the list.
The features and usage are provided in the table below.
| Feature | Use of | Definition |
|---|---|---|
| TclStringList | List1:TclStringList; | A variable belonging to the TclStringList class is created. |
| StringListNew | List1 = Clomosy.StringListNew; | When an object of the TclStringList class is defined, the object is then created. |
| StringListItemString | Str1 = Clomosy.StringListItemString(List1,0); //Str1 : String | The property is used to access items in the list. The first parameter represents the created object, while the second parameter indicates the index number to be accessed. |
| Add | List1.Add('Test 1'); | It is used to add a new item to the end of the list. |
| Insert | List1.Insert(1, 'Test'); | It is used to insert a new item at a specific position. The first parameter specifies the index number where the item will be added, and the second parameter specifies the string to be inserted. |
| Delete | List1.Delete(1); | It is used to remove an item from the list at a specific index. |
| Text | List1.Text | It is a property that returns a combined version of all the items in the object. This property concatenates the items in the list into a single text string. |
| Clear | List1.Clear; | The clear property is used to clear all the items of the list. |
| Free | List1.Free; | The specified object and its associated resources (memory, files, etc.) are cleared from the system, thereby conserving memory and preventing memory leaks. |
| Capacity | List1.Capacity = 5; | Determines or returns the capacity of the list. Capacity represents the size of the allocated memory space for the list. The capacity is dynamically adjusted automatically during operations such as adding or removing elements. |
| Count | ItemCount = List1.Count; //ItemCount : Integer | It returns the number of items in the list. |
| Sorted | List1.Sorted = True; | It returns or sets a Boolean value indicating whether the items in the list are sorted. |
| StrictDelimiter | List1.StrictDelimiter = True; | This property specifies whether only the set delimiter character should be used for splitting the string. If StrictDelimiter is True, it ensures that only the specified delimiter character (like a comma) is used to separate items, ignoring any other whitespace or special characters. |
| Delimiter | List1.Delimiter = ','; | This property defines the character that separates items in the string. For instance, if you set Delimiter = ',';, the TclStringList will treat each comma in the string as a separator between items. |
| DelimitedText | List1.DelimitedText = str; //str = 'hello,world,test'; | This property is used to both get and set the list items as a single string, using the Delimiter character to split or join items. When you assign a string to DelimitedText, TclStringList will use the specified Delimiter (and respect StrictDelimiter settings) to split the string into individual list items. |
| IndexOf | Index = List1.IndexOf('Test'); //Index: Integer; | It is used to find the index of a specific item in the list. |
| Exchange | List1.Exchange(0,2); | The Exchange feature is used to swap two items. |
| Sort | List1.Sort; | The sort property is used to sort the items of the list alphabetically. |
| LoadFromFile | List1.LoadFromFile(Clomosy.AppFilesPath+'note.txt',0); | To load text data from a specified file into a TclStringList object, the 'LoadFromFile' method is used. The purpose of this method is to fetch text data from a file into the program. The data loaded into the TclStringList can be read and processed line by line. |
| SaveToFile | List1.SaveToFile(clPathCombine('File1.Txt',Clomosy.AppFilesPath),0); | It is a class used to hold and manage lines of text. The SaveToFile method is used to save these lines of text to a file. When you call the SaveToFile method, all the lines of text in the TclStringList are written to the specified file. |
Example : Usage of Capacity
In the example, we set the capacity of the list to 10 using the Capacity property of the TclStringList class. Then, by adding elements that exceed the capacity, we create a situation where the capacity is exceeded. In this case, the list automatically expands, and we check the new capacity.
void TclStringListCapacityOrnegi;
var
List: TclStringList;
{
List = Clomosy.StringListNew; //A new list has been created
try
List.Capacity = 5; // Set capacity to 10
// Check capacity
ShowMessage('Capacity: '+IntToStr(List.Capacity));
// Let's exceed capacity by adding more items
List.Add('Item 1');
List.Add('Item 2');
List.Add('Item 3');
List.Add('Item 4');
List.Add('Item 5');
List.Add('Item 6');
List.Add('Item 7');
// Check new capacity
ShowMessage('New capacity: '+ IntToStr(List.Capacity));
finally
List.Free;
}
}
{
TclStringListCapacityOrnegi;
}
Output:
Capacity: 5
New capacity: 9
Example : Usage of Count
var
MyList: TclStringList;
ItemCount: Integer;
{
MyList = Clomosy.StringListNew;
// Add items
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
// Get item count
ItemCount = MyList.Count;
// Show result
ShowMessage('There are ' + IntToStr(ItemCount) + ' items in the list.');
MyList.Free;
}
Output:
There are 3 items in the list.
Example : Usage of Sorted
var
MyList: TclStringList;
i: Integer;
{
MyList = Clomosy.StringListNew;
// Add unordered items
MyList.Add('Orange');
MyList.Add('Banana');
MyList.Add('Apple');
// Show unordered list items
ShowMessage('Unsorted List:');
for (i = 0 to MyList.Count - 1)
ShowMessage(Clomosy.StringListItemString(MyList,i));
// Sort items
MyList.Sorted = True;
// Show sorted list items
ShowMessage('Sorted List:');
for (i = 0 to MyList.Count - 1)
ShowMessage(Clomosy.StringListItemString(MyList,i));
MyList.Free;
}
Output:
Unsorted List:
Orange
Banana
Apple
Sorted list:
Apple
Banana
Orange
Example : Usage of String Splitting
var
list:TclStringList;
str:String;
{
str = 'hello,world,test';
list = Clomosy.StringListNew;
List.StrictDelimiter = True;
List.Delimiter = ',';
List.DelimitedText = str;
Str= Clomosy.StringListItemString(List,0);//Returns element 0
ShowMessage(str);
ShowMessage(List.Count);
}
Example : Usage of Add
var
MyList: TclStringList;
{
MyList = Clomosy.StringListNew;
MyList.Add('Blue');
MyList.Add('Red');
MyList.Add('Yellow');
MyList.Add('Purple');
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
Output:
Items: Blue
Red
Yellow
Purple
Example : Usage of Insert
var
MyList: TclStringList;
{
MyList = Clomosy.StringListNew;
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
// Add "Grape" to Index 1
MyList.Insert(1, 'Grape');
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
As a result, the contents of the list are displayed using the ShowMessage function.
Output:
Items: Apple Grape Banana Orange
Example : Usage of Delete
var
MyList: TclStringList;
{
MyList = Clomosy.StringListNew;
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
// Delete "Grape" to Index 1
MyList.Delete(1);
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
Output:
Items: Apple
Orange
Example : Usage of Clear
var
MyList: TclStringList;
{
MyList = Clomosy.StringListNew;
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
ShowMessage('Items: ' + MyList.Text);
// Clear "Grape" to Index 1
MyList.Clear;
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
As a result, the updated content of the list is displayed using the ShowMessage function. You will get a message like "Items:" (empty) as output because all items have been deleted.
Example : Usage of IndexOf
var
MyList: TclStringList;
Index: Integer;
{
MyList = Clomosy.StringListNew;
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
Index = MyList.IndexOf('Banana');
ShowMessage('Indeks: ' + IntToStr(Index));
MyList.Free;
}
Output:
Indeks: 1
Example : Usage of Exchange
var
MyList: TclStringList;
Index: Integer;
{
MyList = Clomosy.StringListNew;
MyList.Add('Apple');
MyList.Add('Banana');
MyList.Add('Orange');
MyList.Exchange(0,2);
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
Output:
Items: Orange
Banana
Apple
Example : Usage of Sort
var
MyList: TclStringList;
Index: Integer;
{
MyList = Clomosy.StringListNew;
MyList.Add('Orange');
MyList.Add('Banana');
MyList.Add('Apple');
ShowMessage('Items: ' + MyList.Text);
MyList.Sort;
ShowMessage('Items: ' + MyList.Text);
MyList.Free;
}
Output:
Items: Apple
Banana
Orange
Example : Install from File / LoadFromFile
var
strList:TclStringList;
clQueryLoadFile : TclJsonQuery;
path:String;
{
strList = Clomosy.StringListNew;
path = Clomosy.AppFilesPath+'note.txt';
//ShowMessage(path);
strList.LoadFromFile(path,0);
ShowMessage(strList.Text); // The data in the file is displayed by putting it into a String List.
clQueryLoadFile = Clomosy.ClDataSetFromJSON(strList.Text);
ShowMessage(clQueryLoadFile.getJSONString);
}
Example : Writing to a File / SaveToFile
Using the TclStringList class, lines of text are added to a file and then read from the file and displayed on the screen. First, a TclStringList object named StringList1 and a file path variable named FileStr are defined. The showFile procedure loads the lines from the file into the StringList1 object if the specified file exists, and then displays each line on the screen. In the main program block, the StringList1 object is created, and the FileStr variable is set to point to the MyFile.Txt file located in the application files path. Three lines of text are added to the StringList1 object, and these lines are saved to the file. Finally, the showFile procedure is called to display the lines from the file on the screen, and the StringList1 object is freed.
var
StringList1: TclStringList;
FileStr:String;
i: Integer;
void showFile;
{
If (clFileExists(FileStr,''))
StringList1.LoadFromFile(FileStr,0);
for (i = 0 to StringList1.Count - 1)
ShowMessage(Clomosy.StringListItemString(StringList1,i));
}
{
StringList1 = Clomosy.StringListNew;
FileStr = clPathCombine('MyFile.Txt',Clomosy.AppFilesPath);
try
// Adding rows to TclStringList
StringList1.Add('This is line one.');
StringList1.Add('This is line two.');
StringList1.Add('This is line three.');
// Saving TclStringList to a file
StringList1.SaveToFile(FileStr,0);
showFile;
finally
StringList1.Free;
}
}