FAQ C++ BuilderConsultez toutes les FAQ

Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe C++ Builder de Developpez.

Commentez cette FAQ : Commentez


SommaireInterface bisComposantsLe composant TStringList (3)
précédent sommaire suivant
 

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 :

Code c++ : Sélectionner tout
1
2
3
4
5
6
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

Mis à jour le 25 avril 2005 Fred_smashg Ricky81

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 :

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
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();

Mis à jour le 25 avril 2005 Ricky81 TABZ

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é.

Code c++ : Sélectionner tout
1
2
3
4
TStringList *Liste = new TStringList; 
// remplissage 
Liste->SaveToFile("fichier.txt"); 
delete Liste;

Mis à jour le 25 avril 2005 Ricky81

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.