Custom_array[custom_index] := custom_value possible ??????
damanix
Messages postés20Date d'inscriptionsamedi 7 septembre 2002StatutMembreDernière intervention 2 novembre 2002
-
7 sept. 2002 à 21:09
damanix
Messages postés20Date d'inscriptionsamedi 7 septembre 2002StatutMembreDernière intervention 2 novembre 2002
-
8 sept. 2002 à 16:23
Je voudrais savoir si c possible en delphi comme dans a peu pret tous les langages, mais la ça fait 3 heures que je me perd dans les arrays properties et j'y arrive poa :( ...
Bien sur custom_array est un array, pas juste une propriété, autrement dit je veux pouvoir faire :
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 7 sept. 2002 à 22:24
On peut presque tout faire avec un tableau sauf une chose : utiliser une chaine comme index. Par contre il est possible d'utiliser un type énuméré pour servir d'index.
Dons ton cas tu peux définir le type suivant :
Type MaFamille = (MonPere,Mamere,MaSoeur,EtMoi);
Ensuite créer un tableau :
Var MesScores : Array[MaFamille]Of Integer;
Après tu peux l'utiliser comme suit :
MesScores[MonPere]:=1;
MesScores[MaMere]:=2;
MonScore:=MesScores[EtMoi];
Tu peux aussi faire des boucle :
Var Index,LeMeilleur:MaFamille;
...
LeMeilleur:=MonPere;
For Index:= Low(MaFamille) To High(MaFamille) Do
If MesScores[Index]>MesScores[LeMeilleur]
Then LeMeilleur:=Index
damanix
Messages postés20Date d'inscriptionsamedi 7 septembre 2002StatutMembreDernière intervention 2 novembre 2002 8 sept. 2002 à 02:52
Merci, c'est déjà un grand pas :)
Mais ce n'est malheureusement pas exactement ce que je voulais ( ou alors c que j'ai pas tout compris ...):
Ce que je voudrais c la possibilité d'ajouter ou supprimer a n'importe quel moment un index... le probleme avec ta solution c que les types sont fixes nan ?
Si je reprend ton exemple il faudrait qu'à n'importe quel moment je puisse rajouter à MaFamille une valeur MaCousine qui me serve ensuite d'index dans le tableau MesScores[MaCousine]...
Et enfin 2e précision, pkoi on peut pas se servir d'une chaine comme index ???????
Est ce qu'il y a un moyen d'outrepasser cette restriction ???
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 8 sept. 2002 à 14:55
Delphi ne propose pas de tableaux associatifs d'origine.
Il n'est donc pas question d'utriliser la construction que tu demandes.
En revanche, regardes la technique pour réaliser une Hash table. C'est comme ça que fonctionnent les autres langages.
En résumé : tu mets tes valeurs dans une TStringList.
Pour ajouter une valeur, tu utilises la méthode Add,
pour supprimer, tu utilises la méthode IndexOf.
Pour associer n'importe quoi à une chaîne de la liste, utilises la méthode AddObjects.
Pour finir, l'utilisation des composants TList et ses dérivées offre de nombreux avantages sur les tableaux : allocation dynamique, recherche rapide, suppression d'éléments, possibilité d'associer n'importe quelle valeur, structure ou objet à une chaine.