didou2dek
Messages postés45Date d'inscriptionlundi 9 septembre 2002StatutMembreDernière intervention16 avril 2015
-
28 oct. 2008 à 15:26
didou2dek
Messages postés45Date d'inscriptionlundi 9 septembre 2002StatutMembreDernière intervention16 avril 2015
-
29 oct. 2008 à 23:35
Bonjour à tous, j'ai un souci avec un prog que j'essaie d'améliorer je coince sur le tri d'un fichier txt.
je travaille avec cet ex de file :
[PROJET]
electricité
maçonnerie
enduit
.....
[PLANNING]
20081020 0900 1100 didier
20081022 1000 1200 henri
20081022 1330 1800 maison perso
20081022 0830 0900 recup matériau
[FIN]
ce fichier est rafraichi en permanence et à chaque fois que je note un nouveau RDV, mon probleme est qu'il ecrit le fichier dans l'ordre ou je prends le RDV mais dans la section PLANNING on s'aperçoit qu'il ne me les tri pas en fonction de l'heure ce qui est génant car car j'utilise un affichage et que je viens piocher dans ce fichier il me donne les RDV tel qu'il les lit (ex pour le 20081022 il va m'afficher le RDV de 8h30 apres celui de 13h30)
je voudrais donc trier par heure croissant uniquement la section entre [planning] et [fin].
j'ai déja commencé à travailler en affectant tout dans une tstringlist.
ftstring : tstrings;
begin
ftstring:=tstringlist.create;
ftstring.loadfromfile(mon fichier)
tstringlist(ftstring).sort
ftstring.savetofile(....)
end;
mon pb c'est qu'il me tri tout et meme [PROJET] qui ne doit pas etre touché et tout est dans le désordre ça ne va pas je dois pouvoir trier uniquement la partie qui se trouve entre planning et fin....
merci à celui qui pourra me donner un coup de pouce à ce sujet
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 29 oct. 2008 à 13:36
Salut,
@Cantador:
le problème ici est que ce n'est pas un vrai fichier INI ... bien qu'il en ait l'aspect ce n'en est pas un ^^
voici une solution qui est adapté au problème de Didou2dek:
ps: le fichier texte est déjà chargé dans le TMemo {—————————————————————————————————————————————————————————————————————————}
{ Project : Demo.dpr }
{ Comment : Tri une partie d'un fichier texte }
{ }
{ Date : 29/10/2008 13:22:30 }
{ Author : Cirec }
{—————————————————————————————————————————————————————————————————————————}
{ Last modified }
{ Date : 29/10/2008 13:22:30 }
{ Author : Cirec }
{—————————————————————————————————————————————————————————————————————————}
unit UMain;
procedure SortListBetween(aStart, aStop: Integer; aList: TStrings);
var
TmpList: TStringList;
iI: Integer;
begin
{Il faut au moins 2 entrée sinon on sort}
if aList.Count < 2 then Exit;
{Vérification des limites}
if aStart > aStop then
ExchangeInt(aStart, aStop);
if aStop > aList.Count then
aStop := aList.Count;
if aStart < 0 then
aStart := 0;
{Début du tri}
TmpList := TStringList.Create;
try
aList.BeginUpdate;
with TmpList do
begin
Sorted := True;
for iI := aStop-1 downto aStart+1 do
begin
Add(aList[iI]);
aList.Delete(iI);
end;
for iI := Count-1 downto 0 do
aList.Insert(aStart+1, Strings[iI]);
end;
finally
TmpList.Free;
aList.EndUpdate;
end;
end;
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 28 oct. 2008 à 19:36
bonsoir,
mon pb c'est qu'il me tri tout et meme [PROJET] qui ne doit pas etre touché et tout est dans le désordre ça ne va pas je dois pouvoir trier uniquement la partie qui se trouve entre planning et fin....
forcément tu fais un loadfromfile, comment veux-tu que le programme fasse le tri?
il faut lire uniquement la section "[PLANNING]"..
didou2dek
Messages postés45Date d'inscriptionlundi 9 septembre 2002StatutMembreDernière intervention16 avril 2015 28 oct. 2008 à 21:46
bonsoir Cantador,
mais l'utilisation des fichiers ini sert uniquement à récupérer une valeur se situant dans une rubrique que l'on veut exploiter, comment faire pour lui dire qu'apres ma "rubrique [planning]" je veux récupérer tout ce qui se trouve apres et ensuite le trier tout en gardant la structure dur fichier txt car il doit trier mais rester à la meme position et meme ordre ?
je nage un peu dans l'utilisation de ces fichiers txt en ecriture/lecture si tu peux me donner un tuyau ou une aide de code cela m'avancerait pas mal
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 29 oct. 2008 à 14:43
@cirec
J'avais vu aussi que le fichier n'avait pas la tête d'un ini...
j'espérai qu'il le découvre avec les liens..
En tout cas ta solution est excellente car du coup il n'y a plus à se soucier de la gestion du fichier.
didou2dek
Messages postés45Date d'inscriptionlundi 9 septembre 2002StatutMembreDernière intervention16 avril 2015 29 oct. 2008 à 23:35
@Cirec
Merci beaucoup mon ami, un vrai coup de chapeau pour toi tu m'as bien aidé, j'avoue que c'est un peu complexe pour moi mais je vais bosse à fond sur ce code pour en comprendre toutes les subtilités.
Encore merci heureusement qu'il y a des gens comme toi pour aider des débutants comme moi !!