Une TStringList est plus qu'une variable, c'est un objet, un objet contient à la fois des données (propriétés) et des méthodes (procédures et fonctions) pour les manipuler.
Pour pouvoir utiliser une variable TStringlist vous devez non seulement la déclarer comme les autres variables mais avant toute manipulation vous devez explicitement la créer et la détruire une fois le travail terminé.
Pour accéder aux données ou aux méthodes de votre TStringList vous devez les accoler au nom de votre objet, ici liste, avec un point .
Propriétés
Sorted:boolean
Indique si la liste est triée.
if liste.sorted=False then liste.sorted:=True:
Duplicates:TDuplicated
Accepte ou non les doublons.
liste.Duplicates := dupIgnore; // ignorer les doublons
liste.Duplicates := dupAccept; // accepter les doublons
Text:String
Contenu de la liste sous forme d'une chaîne unique.
Chaque ligne étant séparée par les caractères #13#10
Strings[index:integer]:string;
récupére la chaîne d'indice index
var liste:TStringList;
s:string;
begin
liste := TStringList.create; // création de la liste
liste.add('bonjour');
liste.add('help&web');
s := liste.strings[0];
liste.strings[1] := 'help&web version 5.0'
liste.free; // destruction
end;
Méthodes
procedure Create
Création de l'objet TStringList
OBLIGATOIRE avant toute utilisation !
procedure Free
Destruction de l'objet TStringList
OBLIGATOIRE avant de quitter le script sous peine de fuite de mémoire
procedure Clear
Efface toutes les chaînes de la liste
procedure Exchange(index1, index2:integer)
Echange la position de 2 chaînes
function Find(s: string; var Index: Integer): Boolean
La méthode Find permet d'obtenir l'indice auquel la chaîne S serait ajoutée dans une liste triée. Si la chaîne S existe déjà dans la liste, Find renvoie True. Si la liste ne contient pas S, Find renvoie False. L'indice qu'aurait S est renvoyé dans le paramètre Index. Index est un indice de base zéro, la première chaîne a l'indice 0, la seconde l'indice 1, etc.
A n'utiliser que pour des listes triée, sinon utiliser IndexOf
function IndexOf(s: string): Integer
La méthode IndexOf renvoie la position de la première occurrence de la chaîne S. IndexOf renvoie l'indice de base zéro de la chaîne. Si S correspond à la première chaîne de la liste, IndexOf renvoie 0, si S est la deuxième chaîne, IndexOf renvoie 1, etc. Si la chaîne n'est pas dans la liste de chaînes, IndexOf renvoie -1.
function IndexOfName(s: string): Integer
La méthode IndexOfName permet de trouver la première occurrence d'une chaîne de la forme Nom=Valeur dont la partie Nom est identique au paramètre Name. IndexOfName renvoie l'indice de base zéro de la chaîne. Si aucune chaîne de la liste ne contient le nom spécifié, IndexOfName renvoie -1.
On trouve couramment des chaînes de la forme Nom=Valeur dans les fichiers .INI. Par exemple:
Largeur=50
dir=c:\
Le nom identifiant la chaîne est placé à gauche du signe égal (=) et la valeur en cours de l'identificateur se trouve à droite. Il ne doit pas y avoir d'espaces de part et d'autre du signe égal.
Remarque
Si la partie Nom de plusieurs chaînes correspond au paramètre Name, IndexOfName renvoie la position de la première occurrence.
procedure Insert(Index: Integer; s: string)
La méthode Insert insère dans la liste la chaîne S à la position spécifiée par Index. Si Index a la valeur 0, la chaîne est insérée en début de liste, si Index a la valeur 1, la chaîne est placée en deuxième position dans la liste, etc.
procedure Move(CurIndex, NewIndex: Integer)
La méthode Move fait passer la chaîne occupant la position CurIndex à la position NewIndex. Les positions sont spécifiées en utilisant un indice de base zéro.
procedure Assign(Source: TStringList)
Recopie la liste Source, toutes les anciennes données sont écrasées par celles de Source.
function Count: Integer
Retourne le nombre d'élément de la liste.
Le premier élément est le numéro zéro et le dernier est le count-1
function Add(s: string): Integer
La méthode Add permet d'ajouter la chaîne S à la liste. Si la liste est triée, S est ajoutée à la position appropriée dans l'ordre de tri. Si la liste n'est pas triée, S est ajoutée en fin de liste. Add renvoie la position de l'élément dans la liste, le premier élément ayant la position 0.
Remarque
Dans le cas d'une liste triée, si Duplicates a la valeur dupIgnore, une tentative d'ajout d'une chaîne déjà présente n'est pas prise en compte.
procedure AddStrings(Strings: TStringList)
Ajoute une liste de chaînes en fin de liste
function GetValues(Name: string): string
Dans le cas de ligne du genre Nom=Valeur, GetValues retourne la partie Valeur correspodante à Nom (à gauche du signe =)
Retourne une chaîne vide si aucune chaîne ne correspond
procedure SetValues(Name: string; Value: string)
Dans le cas de ligne du genre Nom=Valeur, SetValues modifie la partie Valeur correspodante à Nom (à gauche du signe =)
La chaîne Name=Value est créée si elle n'existe pas.
function Equals(Strings: TStringList): Boolean
Compare 2 listes et renvoie True si elles sont identiques (même nombre d'éléments et même disposition de ceux-ci)
function Names(Index: Integer): string
Dans le cas de ligne du genre Nom=Valeur, Names retourne la partie Nom (à gauche du signe =) de la chaîne dont le numéro d'ordre est index
Retourne une chaîne vide si aucune chaîne ne correspond
voir IndexOfName pour trouver Index en fonction de Nom
procedure Delete(Index: Integer)
Efface la chaîne de numéro d'ordre Index
procedure LoadFromFile(FileName: string)
Charge la liste avec un fichier texte
procedure SaveToFile(FileName: string)
Enregistrer la liste dans un fichier texte, si vous n'indiquez pas de répertoire le fichier sera sauvegardé dans le répertoire du projet.