Stringlist

From Free Pascal wiki
Revision as of 23:08, 15 January 2020 by Trev (talk | contribs) (Translated German page to English)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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