Stringlist

From Lazarus wiki
Jump to navigationJump to search
The 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;

See also