cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 14 févr. 2004 à 08:38
C'est la quatrième fois que tu postes la même question.
S'il n'y a pas de réponse, c'est que personne ne l'a ou n'a eu le temps d'y réfléchir.
Alors, un peu de patience ou creuse toi un peu les méninges la prochaine fois, surtout quand la solution est si simple à trouver :
procedure TForm1.btnSortClick(Sender: TObject);
var
i, j: integer;
begin
with ValueListEditor1.Strings do
for i := 0 to Count - 1 do
for j := i + 1 to Count - 1 do
if Values[Names[i]] > Values[Names[j]] then
move(j, i);
end;
stephanesvh
Messages postés24Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention15 février 2004 14 févr. 2004 à 11:57
salut DelphiProg
Merci pour ton post, Je sais que je l'ai mis plusieur fois en ligne. N'ayant pas de reponse de la part des autres utilisateur, je me demander si il avais lu.
Sachant que j'avais aucune reponse meme pas a mot.
Alors, un peu de patience ou creuse toi un peu les méninges la prochaine fois, surtout quand la solution est si simple à trouver :
J'avais fait des recherches sur le net pour pouvoir effectué cette tache seul, mais sans succés. J'apprend de façon autodidacte la programmation avec Delphi, a partir de livre contenant des exemples, des tuto sur le net et sur le forum.
Si j'ai demander de l'aide, croit moi c'est que j'ai chercher avant de poster de meme entre mes differents post. Je suis meme aller sur le t'chat de ce forum pour demander de l'aide.
ceci etant, je te remercie de ta reponse , mais ça ne fonctionne pas. Le trie ne se fait pas.
Aurai tu une autre idée s'il te plait
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 14 févr. 2004 à 12:15
"Le trie ne se fait pas" : comment ça ?
J'espère que l'on s'est bien compris. Si tu tries la deuxième colonne, alors les éléments de la première colonne changent aussi de place.
Sinon, ce n'est pas le même algorithme et la question était mal posée. :sad)
Pour vérifier que l'on soit d'accord, tu peux télécharger une archive du projet à l'adresse que je vais t'envoyer par MP.
May Delphi be with you
stephanesvh
Messages postés24Date d'inscriptionvendredi 25 juillet 2003StatutMembreDernière intervention15 février 2004 15 févr. 2004 à 13:25
Un grand Merci a toi delphiprog
ça marche, je ne sais pas pourquoi la premieres fois ça a foiré, surement une faute de frappe de ma part.
et a titre d'information pour une prochaine fois si je souhaite effectué le trie sur la 3 eme colone. il me faudraut faire comme ça ??
procedure TForm1.btnSortClick(Sender: TObject);
var
i, j: integer;
begin
with ValueListEditor1.Strings do
for i := 0 to Count - 1 do
for j := i + 2 to Count - 1 do
if Values[Names[i]] > Values[Names[j]] then
move(j, i);
end;
ou bien definir une 3eme variable
procedure TForm1.btnSortClick(Sender: TObject);
var
i, j, k: integer;
begin
with ValueListEditor1.Strings do
for k : = 0 to Count - 1 do
for i := 0 to Count -1 do
for j := K + 1 to Count - 1 do
if Values[Names[i]] > Values[Names[K]] then
move(j, i,k);
end;
Peux tu m'expliquer tres rapidement le fonctionnement du code s'il te plait sans trop abuser de toi.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 15 févr. 2004 à 15:57
Le principe est celui d'un algorithme de tri à bulles.
On compare les éléments deux à deux et on permute seulement lorsque c'est nécessaire.
Ici, chaque élément est comparé au suivant :
if Values[Names[i]] > Values[Names[j]] then
puisque j est toujours à i+1.
Pour trier une 3e colonne, je crois que ça va pas être possible car le composant TValueListEditor ne supporte que deux colonnes ! :big)
Mais je dirai quand même que s'il y avait trois colonnes ou plus, deux variables de boucle suffiraient toujours puisqu'il ne s'agit que de comparer des valeurs deux à deux.
May Delphi be with you