TStrings en tant que liste de paires (nom=valeur)
| TStrings = class (TObject) | Interface de TStrings | Exemples de TStrings |
Une Class/TStrings peut également être définie comme une liste de paires (nom = valeur), comme dans un formulaire :
var liste := TStrings.Create;
liste.Values['nom'] := 'Martin'; // Le premier élément de la TStrings a pour nom "nom" et pour valeur "Martin"
liste.Values['prenom'] := 'Jean'; // Le deuxième élément a pour nom "prenom" et pour valeur "Jean"
liste.Values['age'] := '32'; // Le troisième élément a pour nom "age" et pour valeur "32"
liste.Values['nom'] := 'Martin'; // Le premier élément de la TStrings a pour nom "nom" et pour valeur "Martin"
liste.Values['prenom'] := 'Jean'; // Le deuxième élément a pour nom "prenom" et pour valeur "Jean"
liste.Values['age'] := '32'; // Le troisième élément a pour nom "age" et pour valeur "32"
Les chaînes sont effectivement formatées comme "nom=valeur" dans le format "simple". Les méthodes et propriétés qui s'appliquent de manière générique aux chaînes de la TStrings (Remove, Sort, SaveToFile,...) le sont sur ce format :
Println(liste.CommaText); // Affiche 'nom=Martin,prenom=Jean,age=32' avec l'exemple précédent
liste.Sort; // La liste devient 'age=32,nom=Martin,prenom=Jean'
liste.UpperCase; // La liste devient 'AGE=32,NOM=MARTIN,PRENOM=JEAN'
Println(liste.IndexOf('AGE=32')); // Affiche '0' (la chaîne "AGE=32" est en 1ère position)
liste.Sort; // La liste devient 'age=32,nom=Martin,prenom=Jean'
liste.UpperCase; // La liste devient 'AGE=32,NOM=MARTIN,PRENOM=JEAN'
Println(liste.IndexOf('AGE=32')); // Affiche '0' (la chaîne "AGE=32" est en 1ère position)
Ce format permet néanmoins d'accéder directement aux noms et valeurs de chaque paire avec Names, Values, ValueFromIndex et IndexOfName :
InformationDlg(liste.Names[2]); // Affiche 'AGE', le 3ème nom de la TStrings
InformationDlg(liste.ValueFromIndex(0)); // Affiche 'MARTIN', la 1ère valeur de la TStrings
InformationDlg(liste.Values['PRENOM']); // Affiche 'JEAN', la valeur du nom 'PRENOM'
InformationDlg(IntToStr(liste.IndexOfName['AGE'])); // Affiche '2', l'index du nom 'AGE'
InformationDlg(liste.ValueFromIndex(0)); // Affiche 'MARTIN', la 1ère valeur de la TStrings
InformationDlg(liste.Values['PRENOM']); // Affiche 'JEAN', la valeur du nom 'PRENOM'
InformationDlg(IntToStr(liste.IndexOfName['AGE'])); // Affiche '2', l'index du nom 'AGE'