Bonjour!
Voila j'ai un problème j'ai un Tableau dynamique à 2 dimensions.
Il y a 302 lignes. (j'ai testé avec Length). Chaque ligne à 7 colonnes.
Comment peut-on trier le contenue selon une colonne spécifique?
Merci.
Bonjour!
Voila j'ai un problème j'ai un Tableau dynamique à 2 dimensions.
Il y a 302 lignes. (j'ai testé avec Length). Chaque ligne à 7 colonnes.
Comment peut-on trier le contenue selon une colonne spécifique?
Merci.
Tu ne peux pas facilement !
Il faudra passer par un premier tableau temporaire que tu rempliras avec les index du tableau source en fonction de ton algorithme de tri, puis un deuxième que tu rempliras avec les données sources en fonction de la table d'index avant de le recopier dans le tableau source...
Si la deuxième dimension est dynamique, on pourrait aussi imaginer ne faire qu'une modification de pointeur en fonction de la table d'index.
J'ai oublié de dire que c'est des String ^^'
C'est toujours possible?
Il y a une autre possibilité à mon avis plus simple.
Il faudrait utiliser un type record avec 7 membres de type string en remplacement d'une ligne de tableau.
Ensuite, stocker ces record dans un TList.
Après, la fonction sort avec le sortcompare qui va bien fera le travail.
Attention avec les String dans les Record. L'allocation des chaines longues ne sera pas gérée automatiquement à l'ajout/supression des enregistrements.
Il faut mieux faire une classe simple :
La création/desctruction d'un instance gérera correctement l'allocation des chaines longues.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TMAClasse=Class Chaine1 : String; .. Chaine7 : String; End;
De plus, comme c'est un objet, tu peux utiliser TObjectList qui gèrera seul la libération des éléments de la liste.
Il me semble qu'une possibilité serait d'utiliser le wrapper TDynArray de Arnaud Bouchez: http://synopse.info/forum/viewtopic.php?id=254
Il permet de gérer les tableaux dynamiques de façon similaire à une liste, et le tri s'applique ensuite assez facilement sur n'importe quel champ de ton record.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager