COMPOSANT PERMETTANT DE TRIER LE CONTENU D'UN FICHIER TEXTE

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 23 janv. 2005 à 14:38
bernardg15 Messages postés 1 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 24 janvier 2005 - 24 janv. 2005 à 03:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29009-composant-permettant-de-trier-le-contenu-d-un-fichier-texte

bernardg15 Messages postés 1 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 24 janvier 2005
24 janv. 2005 à 03:59
je telecharge plusieur winzip mest ca marche pas
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 janv. 2005 à 16:54
Salut,
J'ai moi aussi quelques remarques constructives a te transmettre car je suis aussi d'accord avec GrandVizir pour le tri simple.

1) Que viennent faire "dialogs" "messages" "graphics" et stdctrls dans le unités déclarées ??

2) je ne suis pas sur que cela soit du ressort de ton composant de s'occuper de ça :
if curseur then screen.cursor := crHourGlass;
mais plutot a l'application elle meme, enfin c'est mon avis. et puis je pense que l'unité "forms" pourra sauter =)

3) dans la description tu dis "Pour lancer le tri, appelez la procédure Executer" dommage que cette procedure n'existe pas ! elle s'apelle "tri", mais "executer" est nettement mieux comme nom.
pour info tu dois la déclarer en public et non published (meme si ça marche aussi en published).

4) le type des fichiers devrait être "TFileName" au lieu d'une simple String (limitée à 255c).

5) et puis comme d'hab, ceux qui me connaissent le savent : j'ai testé la rapidité d'execution de ton code avec celui de grandvizir (c'est a dire celui que lui, moi et delphiprog utilisons) et voila le resultat sur un fichier de 2300 lignes :
http://diabloporc.free.fr/delphi/demos/gbevsgvz.jpg
GBE (auteur) : 83 millisecondes
GVZ (nous) : 21 millisecondes
dois presque 4 fois plus rapide rien que pour 2300 lignes.

6) Ton tri n'est pas bon !!!! les " _ " apparaissent APRES les "z" !!!! alors qu'ils doivent etre dans les premiers !

7) je viens de supprimer "forms" ainsi que tout ce qui touche au curseur, je passe bizzarement à 55 millisecondes... je l'avais dit =)

8) allez une derniere pour la route, je te conseille de déclarer tes variables persos avec un "f" dans un composant, exemple (d'une pierre 2 coups voila le TFileName) :
fNomFic1, fNomFic2 : TFileName;
c'est pas obligatoire mais c un peux comme le "T" =)

ma note orale 3/10
mets a jour ce compo si tu veux/peux, essaie de faire que le trie fonctionne, vire le curseur =) etc et puis le composant sera peut etre un jour utile.
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 janv. 2005 à 15:13
"Ce code n'est pas commenté car j'ai juste repris l'exemple de tri fourni par Delphi". Dans ce cas, tout le monde là et il n'a rien à faire sur ce site.

Tout à fait d'accord avec GrandVizir : un TStringList suffit amplement pour trier une liste de chaînes.

Il est donc inutile de réinventer ce qui existe déjà.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
23 janv. 2005 à 14:38
Pour ne pas s'embêter, voici un programme Console:

program Test;
uses Classes;
var STL : TStringList;
begin
STL:=TStringList.Create;
STL.Clear;
try
STL.LoadFromFile(FICHIER);
STL.Sort;
STL.SaveToFile(NewFICHIER);
finally
STL.Free;
end;
end.

Le tri est alphabétique.
Rejoignez-nous