Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Interface > Composants > Le composant TStringList
        A quoi sert le composant TStringList ?
        Comment gérer des couples clé/valeur avec un TStringList ?
        Comment enregistrer des informations dans un fichier texte ?



A quoi sert le composant TStringList ?
Créé le 25/04/2005[haut]
auteurs : Ricky81, Fred_smashg
Un TStringList est un composant permettant de gérer une liste indexée de chaînes de caractères de type AnsiString. Malgré son nom, c'est en fait un tableau qui se cache derrière, avec une réallocation dynamique pour augmenter sa taille. Il n'y a donc en théorie aucune limite pour la taille d'un élément TStringList, en pratique les limitations viendront évidemment de la mémoire côté système.

Ce composant facilite donc la gestion de listes de chaînes et est particulièrement utile lorsqu'il s'agit de manipuler des fichiers textes.
Il dispose notamment des méthodes Add pour insérer une chaîne en fin de liste, Insert pour insérer un élément à une position donnée (il y a donc une réorganisation/décalage d'index pour une partie des éléments déjà existant), Delete qui supprime un élément à une position donnée (idem pour la réorganisation), et Clear qui retire tous les éléments.
L'accès aux chaînes se fait via la propriété Strings qui est un tableau de chaînes. Il est important d'avoir à l'esprit que le premier élément sera référencé par un index valant 0 :

TStringList *Liste = new TStringList;
// remplissage
int Taille = Liste->Count; // on récupère la taille
// on récupère la dernière ligne (l'indexation commence à 0)
AnsiString Chaine = Liste->Strings[Taille-1];
delete Liste

Comment gérer des couples clé/valeur avec un TStringList ?
Créé le 25/04/2005[haut]
auteurs : Ricky81, TABZ
Le TStringList ne se limite pas au stockage bête et méchant d'une série de chaînes de caractères. Il permet par exemple de gérer très facilement des couples clé/valeur là où on pourrait penser devoir utiliser une structure plus complexe voire 2 éléments de type TStringList avec synchronisation.

Nous pouvons par exemple très facilement gérer un couple pseudo/prénom comme suit :

TStringList* Liste = new TStringList;

Liste->Add("Ricky81=Eric");
Liste->Add("Greybird=Arnaud");

AnsiString Pseudo, Prenom;
Pseudo = Liste->Names[0];
Prenom = Liste->Values[Pseudo];

delete Liste;
La problématique de synchronisation des informations étant réglée, il est par exemple possible de trier les éléments sans risque en appelant Liste->Sort();


Comment enregistrer des informations dans un fichier texte ?
Créé le 25/04/2005[haut]
auteur : Ricky81
Si les informations ne sont pas déjà organisées dans des composants gérant le texte, l'utilisation du composant TStringList parait requise. Après avoir ajouté les différentes informations sous forme de chaînes de caractères AnsiString, il vous suffit d'appeler la méthode SaveToFile qui enregistrera les différentes "lignes" ordonnées composant l'objet vers le fichier spécifié.

TStringList *Liste = new TStringList;
// remplissage
Liste->SaveToFile("fichier.txt");
delete Liste;


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web