Stringlist
From Lazarus wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│ Deutsch (de) │ English (en) │ polski (pl) │
String list
With a string list, a file is read completely into working memory. Stringlist is therefore suitable for files of small and medium size. Stringlist is a way to process files quickly and easily. Stringlist is ideal for processing files that are smaller than 1 megabyte. To process the file, the entire file is loaded into the main memory. Each line of the data record is read into its own array element.
Create a file
procedure SubStringlistFileCreate ();
var
// TStringlist is part of the Classes unit
strList : TStringList;
begin
// Creates the string list
strList := TStringList.Create;
// Adds a record including a line break to the string list
strList.Add('xyz');
// Adds a record including a line break to the string list
strList.Add('abcd');
// Writes the string list to a file
strList.SaveToFile('example.txt');
// Releases the string list memory
strList.Free;
end;
Append a record to an existing file
procedureSubStringlistApplyFile ();
var
// TStringlist is part of the Classes unit
strList : TStringList;
begin
// Creates the string list
strList := TStringList.Create;
// Reads the whole file into the string list
strList.LoadFromFile('example.txt');
// Adds a record including a line break to the string list
strList.Add('text');
// Writes the string list to a file
strList.SaveToFile('example.txt');
// Releases the string list memory
strList.Free;
end;
Find a record
Method 1
procedure subStringlistFileSearch ();
var
// TStringlist is part of the Classes unit
strList : TStringList;
intI : Integer;
begin
// Creates the string list
strList := TStringList.Create;
// Reads the whole file into the string list
strList.LoadFromFile('example.txt');
// Use a counting loop to find the corresponding record
for intI := 0 to strList.Count -1 do
begin
// Search and change the record
if strList [intI] = 'abcd' then
strList [intI] := 'dcba';
end;
// Writes the string list to a file
strList.SaveToFile('example.txt');
// Releases the string list memory
strList.Free;
end;
Method 2
procedure subStringlistInFileSearch2 ();
var
// TStringlist is part of the Classes unit
strList : TStringList;
intI : Integer;
begin
// Creates the string list
strList := TStringList.Create;
// Reads the whole file into the string list
strList.LoadFromFile('example.txt');
// Searches for "Text", if not found, the search returns -1
intI := strList.IndexOf ('Text');
// If found, changes the record
if intI <> -1 then
strlist[intI] := 'tXET';
// Writes the string list to a file
strList.SaveToFile('example.txt');
// Releases the string list memory
strList.Free;
end;
Sort a file alphabetically
procedure SubStringlistFileSort ();
var
// TStringlist is part of the Classes unit
strList : TStringList;
intI : Integer;
begin
// Creates the string list
strList := TStringList.Create;
// Reads the whole file into the string list
strList.LoadFromFile('example.txt');
// Sort the string list alphabetically
strList.Sort;
// Writes the string list to a file
strList.SaveToFile('example.txt');
// Releases the string list memory
strList.Free;
end;