TStrings
[Properties (by Name)][Methods (by Name)][Events (by Name)]
Class to manage arrays or collections of strings
Declaration
Source position: classesh.inc line 616
Type
TStrings = class (TPersistent)
private
FDefaultEncoding : TEncoding;
FEncoding : TEncoding;
FMissingNameValueSeparatorAction : TMissingNameValueSeparatorAction;
FSpecialCharsInited : Boolean;
FAlwaysQuote : Boolean;
FQuoteChar : Char;
FDelimiter : Char;
FNameValueSeparator : Char;
FUpdateCount : Integer;
FAdapter : IStringsAdapter;
FLBS : TTextLineBreakStyle;
FOptions : TStringsOptions;
FLineBreak : string;
function GetCommaText : string;
function GetLineBreakCharLBS : string;
function GetMissingNameValueSeparatorAction
: TMissingNameValueSeparatorAction;
function GetName(Index: Integer) : string;
function GetStrictDelimiter : Boolean;
function GetTrailingLineBreak : Boolean;
function GetUseLocale : Boolean;
function GetValue(const Name: string) : string;
function GetWriteBOM : Boolean;
function GetLBS : TTextLineBreakStyle;
procedure SetDefaultEncoding(const ADefaultEncoding: TEncoding);
procedure SetEncoding(const AEncoding: TEncoding);
procedure SetLBS(AValue: TTextLineBreakStyle);
procedure ReadData(Reader: TReader);
procedure SetCommaText(const Value: string);
procedure SetMissingNameValueSeparatorAction
(AValue: TMissingNameValueSeparatorAction);
procedure SetStringsAdapter(const Value: IStringsAdapter);
procedure SetStrictDelimiter(AValue: Boolean);
procedure SetTrailingLineBreak(AValue: Boolean);
procedure SetUseLocale(AValue: Boolean);
procedure SetWriteBOM(AValue: Boolean);
procedure SetValue(const Name: string; const Value: string);
procedure SetDelimiter(c: Char);
procedure SetQuoteChar(c: Char);
procedure SetNameValueSeparator(c: Char);
procedure WriteData(Writer: TWriter);
procedure DoSetTextStr(const Value: string; DoClear: Boolean);
function GetDelimiter : Char;
function GetNameValueSeparator : Char;
function GetQuoteChar : Char;
function GetLineBreak : string;
procedure SetLineBreak(const S: string);
function GetSkipLastLineBreak : Boolean;
procedure SetSkipLastLineBreak(const AValue: Boolean);
procedure DoSetDelimitedText(const AValue: string; DoClear: Boolean;
aStrictDelimiter: Boolean;
aQuoteChar: Char; aDelimiter: Char);
protected
function CompareStrings(const s1: string; const s2: string) : Integer
; Virtual;
procedure DefineProperties(Filer: TFiler); Override;
procedure Error(const Msg: string; Data: Integer);
procedure Error(const Msg: PString; Data: Integer);
function Get(Index: Integer) : string; Virtual; Abstract;
function GetCapacity : Integer; Virtual;
function GetCount : Integer; Virtual; Abstract;
function GetObject(Index: Integer) : TObject; Virtual;
function GetTextStr : string; Virtual;
procedure Put(Index: Integer; const S: string); Virtual;
procedure PutObject(Index: Integer; AObject: TObject); Virtual;
procedure SetCapacity(NewCapacity: Integer); Virtual;
procedure SetTextStr(const Value: string); Virtual;
procedure SetUpdateState(Updating: Boolean); Virtual;
UpdateCount : Integer;
function DoCompareText(const s1: string; const s2: string) : PtrInt
; Virtual;
function GetDelimitedText : string;
procedure SetDelimitedText(const AValue: string);
function GetValueFromIndex(Index: Integer) : string;
procedure SetValueFromIndex(Index: Integer; const Value: string);
procedure CheckSpecialChars;
class function GetNextLine(const Value: string; var S: string;
var P: SizeInt) : Boolean;
function GetNextLinebreak(const Value: string; var S: string;
var P: SizeInt) : Boolean;
public
constructor Create;
destructor Destroy; Override;
function ToObjectArray(aStart: Integer; aEnd: Integer) : TObjectDynArray
; Overload;
function ToObjectArray : TObjectDynArray; Overload;
function ToStringArray(aStart: Integer; aEnd: Integer) : TStringDynArray
; Overload;
function ToStringArray : TStringDynArray; Overload;
function Add(const S: string) : Integer; Virtual; Overload;
function Add(const Fmt: string; const Args: Array of const) : Integer
; Overload;
function AddObject(const S: string; AObject: TObject) : Integer
; Virtual; Overload;
function AddObject(const Fmt: string; Args: Array of const;
AObject: TObject) : Integer; Overload;
function AddPair(const AName: string; const AValue: string) : TStrings
; Overload;
function AddPair(const AName: string; const AValue: string;
AObject: TObject) : TStrings; Overload;
procedure AddStrings(TheStrings: TStrings); Virtual; Overload;
procedure AddStrings(TheStrings: TStrings; ClearFirst: Boolean)
; Overload;
procedure AddStrings(const TheStrings: Array of string); Virtual
; Overload;
procedure AddStrings(const TheStrings: Array of string;
ClearFirst: Boolean); Overload;
procedure SetStrings(TheStrings: TStrings); Virtual; Overload;
procedure SetStrings(TheStrings: Array of string); Virtual; Overload;
procedure AddText(const S: string); Virtual;
procedure AddCommaText(const S: string);
procedure AddDelimitedText(const S: string; ADelimiter: Char;
AStrictDelimiter: Boolean); Overload;
procedure AddDelimitedtext(const S: string); Overload;
procedure Append(const S: string);
procedure Assign(Source: TPersistent); Override;
procedure BeginUpdate;
procedure Clear; Virtual; Abstract;
procedure Delete(Index: Integer); Virtual; Abstract;
procedure EndUpdate;
function Equals(Obj: TObject) : Boolean; Override; Overload;
function Equals(TheStrings: TStrings) : Boolean; Overload;
procedure Exchange(Index1: Integer; Index2: Integer); Virtual;
function ExtractName(const S: string) : string;
procedure Filter(aFilter: TStringsFilterMethod; aList: TStrings);
function Filter(aFilter: TStringsFilterMethod) : TStrings;
procedure Fill(const aValue: string; aStart: Integer; aEnd: Integer);
procedure ForEach(aCallback: TStringsForEachMethod);
procedure ForEach(aCallback: TStringsForEachMethodEx);
procedure ForEach(aCallback: TStringsForEachMethodExObj);
function GetEnumerator : TStringsEnumerator;
procedure GetNameValue(Index: Integer; out AName: string;
out AValue: string);
function GetText : PChar; Virtual;
function IndexOf(const S: string) : Integer; Virtual;
function IndexOf(const S: string; aStart: Integer) : Integer; Virtual;
function IndexOfName(const Name: string) : Integer; Virtual;
function IndexOfObject(AObject: TObject) : Integer; Virtual;
procedure Insert(Index: Integer; const S: string); Virtual; Abstract;
procedure InsertObject(Index: Integer; const S: string;
AObject: TObject);
function LastIndexOf(const S: string; aStart: Integer) : Integer
; Virtual;
function LastIndexOf(const S: string) : Integer;
procedure LoadFromFile(const FileName: string); Virtual; Overload;
procedure LoadFromFile(const FileName: string; IgnoreEncoding: Boolean);
procedure LoadFromFile(const FileName: string; AEncoding: TEncoding)
; Virtual; Overload;
procedure LoadFromStream(Stream: TStream); Virtual; Overload;
procedure LoadFromStream(Stream: TStream; IgnoreEncoding: Boolean)
; Overload;
procedure LoadFromStream(Stream: TStream; AEncoding: TEncoding)
; Virtual; Overload;
procedure Map(aMap: TStringsMapMethod; aList: TStrings);
function Map(aMap: TStringsMapMethod) : TStrings;
procedure Move(CurIndex: Integer; NewIndex: Integer); Virtual;
function Pop : string;
function Reduce(aReduceMethod: TStringsReduceMethod;
const startingValue: string) : string;
function Reverse : TStrings;
procedure Reverse(aList: TStrings);
procedure SaveToFile(const FileName: string); Virtual; Overload;
procedure SaveToFile(const FileName: string; IgnoreEncoding: Boolean)
; Overload;
procedure SaveToFile(const FileName: string; AEncoding: TEncoding)
; Virtual; Overload;
procedure SaveToStream(Stream: TStream); Virtual; Overload;
procedure SaveToStream(Stream: TStream; IgnoreEncoding: Boolean)
; Overload;
procedure SaveToStream(Stream: TStream; AEncoding: TEncoding); Virtual
; Overload;
function Shift : string;
procedure Slice(fromIndex: Integer; aList: TStrings);
function Slice(fromIndex: Integer) : TStrings;
procedure SetText(TheText: PChar); Virtual;
AlwaysQuote : Boolean;
Capacity : Integer;
CommaText : string;
Count : Integer;
DefaultEncoding : TEncoding;
DelimitedText : string;
Delimiter : Char;
Encoding : TEncoding;
LineBreak : string;
MissingNameValueSeparatorAction : TMissingNameValueSeparatorAction;
Names[Index: Integer]: string;
NameValueSeparator : Char;
Objects[Index: Integer]: TObject;
Options : TStringsOptions;
QuoteChar : Char;
SkipLastLineBreak : Boolean;
TrailingLineBreak : Boolean;
StrictDelimiter : Boolean;
Strings[Index: Integer]: string; default;
StringsAdapter : IStringsAdapter;
Text : string;
TextLineBreakStyle : TTextLineBreakStyle;
UseLocale : Boolean;
ValueFromIndex[Index: Integer]: string;
Values[Name: string]: string;
WriteBOM : Boolean;
end
;
Description
TStrings implements an abstract class to manage an array of strings. It introduces methods to set and retrieve strings in the array, searching for a particular string, concatenating the strings and so on. It also allows an arbitrary object to be associated with each string.
It also introduces methods to manage a series of name=value settings, as found in many configuration files.
An instance of TStrings is never created directly, instead a descendant class such as TStringList should be created. This is because TStrings is an abstract class which does not implement all methods; TStrings also doesn't store any strings, this is the functionality introduced in descendants such as TStringList .
TStrings implements the IFPObserved interface: when the stringlist is changed, a ooChanged notification is sent to all observers.
Members
Member | Type | Visibility | Description |
---|---|---|---|
Add | Method | public | Add a string to the list |
AddCommaText | Method | public | |
AddDelimitedText | Method | public | |
AddObject | Method | public | Add a string and associated object to the list. |
AddPair | Method | public | Add a name-value pair |
AddStrings | Method | public | Add contents of another stringlist to this list. |
AddText | Method | public | Add text to the string list. |
AlwaysQuote | Property | public | Always quote strings in DelimitedText |
Append | Method | public | Add a string to the list. |
Assign | Method | public | Assign the contents of another stringlist to this one. |
BeginUpdate | Method | public | Mark the beginning of an update batch. |
Capacity | Property | public | Capacity of the list, i.e. number of strings that the list can currently hold before it tries to expand. |
CheckSpecialChars | Method | protected | |
Clear | Method | public | Removes all strings and associated objects from the list. |
CommaText | Property | public | Contents of the list as a comma-separated string. |
CompareStrings | Method | protected | |
Count | Property | public | Number of strings in the list. |
Create | Method | public | Initializ a new TStrings instance |
DefaultEncoding | Property | public | Default encoding of stringlist |
DefineProperties | Method | protected | Method to stream the contents of the string collection |
Delete | Method | public | Delete a string from the list. |
DelimitedText | Property | public | Get or set all strings in the list in a delimited form. |
Delimiter | Property | public | Delimiter character used in DelimitedText . |
Destroy | Method | public | Frees all strings and objects, and removes the list from memory. |
DoCompareText | Method | protected | |
DoSetDelimitedText | Method | private | |
DoSetTextStr | Method | private | |
Encoding | Property | public | Current encoding of stringlist |
EndUpdate | Method | public | Mark the end of an update batch. |
Equals | Method | public | Compares the contents of two stringlists. |
Error | Method | protected | Raises an EStringListError exception. |
Exchange | Method | public | Exchanges two strings in the list. |
ExtractName | Method | public | Extract the name part of a string |
FAdapter | Field | private | |
FAlwaysQuote | Field | private | |
FDefaultEncoding | Field | private | |
FDelimiter | Field | private | |
FEncoding | Field | private | |
Fill | Method | public | |
Filter | Method | public | |
FLBS | Field | private | |
FLineBreak | Field | private | |
FMissingNameValueSeparatorAction | Field | private | |
FNameValueSeparator | Field | private | |
FOptions | Field | private | |
ForEach | Method | public | |
FQuoteChar | Field | private | |
FSpecialCharsInited | Field | private | |
FUpdateCount | Field | private | |
Get | Method | protected | Abstract read handler for the TStrings.Strings property. |
GetCapacity | Method | protected | Abstract Read handler for the TStrings.Capacity property. |
GetCommaText | Method | private | |
GetCount | Method | protected | Abstract read handler for the TStrings.Count property. |
GetDelimitedText | Method | protected | |
GetDelimiter | Method | private | |
GetEnumerator | Method | public | Create an IEnumerator instance |
GetLBS | Method | private | |
GetLineBreak | Method | private | |
GetLineBreakCharLBS | Method | private | |
GetMissingNameValueSeparatorAction | Method | private | |
GetName | Method | private | |
GetNameValue | Method | public | Return both name and value of a name,value pair based on it's index. |
GetNameValueSeparator | Method | private | |
GetNextLine | Method | protected | |
GetNextLinebreak | Method | protected | |
GetObject | Method | protected | Abstract read handler for the TStrings.Objects property. |
GetQuoteChar | Method | private | |
GetSkipLastLineBreak | Method | private | |
GetStrictDelimiter | Method | private | |
GetText | Method | public | Returns the contents as a PChar |
GetTextStr | Method | protected | Read handler for the TStrings.Text property. |
GetTrailingLineBreak | Method | private | |
GetUseLocale | Method | private | |
GetValue | Method | private | |
GetValueFromIndex | Method | protected | |
GetWriteBOM | Method | private | |
IndexOf | Method | public | Find a string in the list and return its position. |
IndexOfName | Method | public | Finds the index of a name in the name-value pairs. |
IndexOfObject | Method | public | Finds an object in the list and returns its index. |
Insert | Method | public | Insert a string in the list. |
InsertObject | Method | public | Insert a string and associated object in the list. |
LastIndexOf | Method | public | |
LineBreak | Property | public | LineBreak character to use |
LoadFromFile | Method | public | Load the contents of a file as a series of strings. |
LoadFromStream | Method | public | Load the contents of a stream as a series of strings. |
Map | Method | public | |
MissingNameValueSeparatorAction | Property | public | |
Move | Method | public | Move a string from one place in the list to another. |
Names | Property | public | Name parts of the name-value pairs in the list. |
NameValueSeparator | Property | public | Value of the character used to separate name,value pairs |
Objects | Property | public | Indexed access to the objects associated with the strings in the list. |
Options | Property | public | A set of TStringsOption - various boolean properties. |
Pop | Method | public | |
Put | Method | protected | Write handler for the TStrings.Strings property. |
PutObject | Method | protected | Write handler for the TStrings.Objects property. |
QuoteChar | Property | public | Quote character used in DelimitedText . |
ReadData | Method | private | |
Reduce | Method | public | |
Reverse | Method | public | |
SaveToFile | Method | public | Save the contents of the list to a file. |
SaveToStream | Method | public | Save the contents of the string to a stream. |
SetCapacity | Method | protected | Write handler for the TStrings.Capacity property. |
SetCommaText | Method | private | |
SetDefaultEncoding | Method | private | |
SetDelimitedText | Method | protected | |
SetDelimiter | Method | private | |
SetEncoding | Method | private | |
SetLBS | Method | private | |
SetLineBreak | Method | private | |
SetMissingNameValueSeparatorAction | Method | private | |
SetNameValueSeparator | Method | private | |
SetQuoteChar | Method | private | |
SetSkipLastLineBreak | Method | private | |
SetStrictDelimiter | Method | private | |
SetStrings | Method | public | |
SetStringsAdapter | Method | private | |
SetText | Method | public | Set the contents of the list from a PChar. |
SetTextStr | Method | protected | Write handler for the TStrings.Text property. |
SetTrailingLineBreak | Method | private | |
SetUpdateState | Method | protected | Sets the update state. |
SetUseLocale | Method | private | |
SetValue | Method | private | |
SetValueFromIndex | Method | protected | |
SetWriteBOM | Method | private | |
Shift | Method | public | |
SkipLastLineBreak | Property | public | Do not add a linebreak to the last item |
Slice | Method | public | |
StrictDelimiter | Property | public | Should only the delimiter character be considered a delimiter |
Strings | Property | public | Indexed access to the strings in the list. |
StringsAdapter | Property | public | Not implemented in Free Pascal. |
Text | Property | public | Contents of the list as one big string. |
TextLineBreakStyle | Property | public | Determines which line breaks to use in the Text property |
ToObjectArray | Method | public | |
ToStringArray | Method | public | |
TrailingLineBreak | Property | public | Add a linebreak to the last item |
UpdateCount | Property | protected | |
UseLocale | Property | public | Determines what methods are used in strings comparison. |
ValueFromIndex | Property | public | Return the value part of a string based on it's index. |
Values | Property | public | Value parts of the name-value pairs in the list. |
WriteBOM | Property | public | Write BOM when writing stringlist to stream |
WriteData | Method | private |
Inheritance
Class | Description |
---|---|
TStrings | Class to manage arrays or collections of strings |
See also
Name | Description |
---|---|
Char | Character type (1 byte) |
Char | Character type (1 byte) |
Char | Character type (1 byte) |
Char | Character type (1 byte) |
Char | Character type (1 byte) |
Char | Character type (1 byte) |
IFPObserved | Interface implemented by an object that can be observed. |
Integer | A signed 16-bits integer |
Integer | A signed 16-bits integer |
Integer | A signed 16-bits integer |
Integer | A signed 16-bits integer |
IStringsAdapter | IStringsAdapter Interface declaration. |
IStringsAdapter | IStringsAdapter Interface declaration. |
TEncoding | |
TEncoding | |
TEncoding | |
TEncoding | |
TObject | Base class of all classes. |
TStringList | Standard implementation of the TStrings class. |
TStringsOptions | Set of TStringsOption |
TStringsOptions | Set of TStringsOption |
TTextLineBreakStyle | Text line break style. (end of line character) |
TTextLineBreakStyle | Text line break style. (end of line character) |