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
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 |
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; |
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; |
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 çaLes 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 © 2024 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.