cs_Napster
Messages postés76Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention19 septembre 2009
-
19 avril 2007 à 22:25
DRJEROME
Messages postés436Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 5 février 2015
-
20 avril 2007 à 22:40
salut tout le monde ,
j'ai créer un petit editeurExtraire un fichie dans Listbox , mais dans le fichier ya des doublons de ligne , comment faire pour laisser qune ligne et supprimer ces doublons .
merci d'avance
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 20 avril 2007 à 19:26
oui, il est certains qu'assign est moins simple que Text := Text ... mais, c'est la meilleure methode pour assigner le contenus d'un TStrings a un autre TStrings.
tout comme pour assigner le contenus d'un TPersistent a un autre TPersistent, c'est la methode la plus propre et la plus respectueuse.
donc autant, montrer, le bon exemple, même si il fait partis d'une multitude de solutions possibles, l'avantage d'assign c'est qu'elle s'adapte trés bien a toute forme de liste, contrairement a ta solution ou on perd certaines informations quand on utilise une liste particuliere, notement les listes delimitées et donc le duplicate ne pourrait pas fonctionner forcement.
de plus elle contient deja tout le code necessaire qu'on devrait normalement mettre en place lors des modifications de liste (beginupdate, endupdate, clear, etc)
procedure TStrings.Assign(Source: TPersistent);
begin
if Source is TStrings then
begin
BeginUpdate;
try
Clear;
FDefined := TStrings(Source).FDefined;
FNameValueSeparator := TStrings(Source).FNameValueSeparator;
FQuoteChar := TStrings(Source).FQuoteChar;
FDelimiter := TStrings(Source).FDelimiter;
AddStrings(TStrings(Source));
finally
EndUpdate;
end;
Exit;
end;
inherited Assign(Source);
end;
DRJEROME
Messages postés436Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 5 février 2015 20 avril 2007 à 19:39
sinon ton assign plus court :
<hr />
procedure TStrings.Assign(Source: TPersistent);
begin
if Source is TStrings then
begin
BeginUpdate;
try
Clear;
AddStrings(TStrings(Source));
finally
EndUpdate;
end;
Exit;
end;
inherited Assign(Source);
end;
<hr />
DRJEROME
Messages postés436Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 5 février 2015 20 avril 2007 à 22:40
on n'a pas besoin des "separators" pour le cas présent (et selon les versions delphi le code n'est pas le même les separators ne sont pas sur toutes les versions)