Newsgroup: it.comp.lang.delphi
Titolo: Eliminare doppioni in una TStringList

Salve, che algoritmo posso utilizzare per eliminare degli elementi doppioni
in una TStringList?
Ovvero, se ho "uno, due, tre, quattro, due, due, zero" pulirlo ed ottenere
"uno, due, tre, quattro, zero"?
grazie :)


wrote:

procedure EliminaDoppioni(S: TStringList);
var
  T: TStringList;
  I: Integer;
begin
  T := TStringList.Create;
  try
    for I := 0 to S.Count-1 do
    begin
      if T.IndexOf(S.Strings[I]) = -1 then
        T.Add(S.Strings[I]);
    end;
    S.Clear;
    S.Assign(T);
  finally
    T.Free;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  S, T: TStringList;
  I, J: Integer;
begin
  S := TStringList.Create;
  try
    S.Add('uno');
    S.Add('due');
    S.Add('tre');
    S.Add('quattro');
    S.Add('due');
    S.Add('due');
    S.Add('zero');
    ShowMessage(S.Text);
    EliminaDoppioni(S);
    ShowMessage(S.Text);
  finally
    S.Free
  end;
end;
-- 
Andrea Laforgia
#exclude <windows.h>

uses mattia; 
 const date = 'Sun, 02 Feb 2003 14:36:13 GMT'; 

Crea NuovaLista;
Per ogni stringa in VecchiaLista 
	Se VecchiaLista.stringa not esistente in NuovaLista	Allora
			NuovaLista.Aggiungi(VecchiaLista.stringa);
VecchiaLista := NuovaLista;
LiberaEAnnulla(NuovaLista);
Ora divertiti a trasformare questo pseudo-codice in Object Pascal :-))
-- 
"Symbol table full - fatal heap error; please go buy a RAM upgrade from your local Apple dealer" 
(Apple's MPW C compiler.)
http://web.tiscali.it/mbsoftware

procedure EliminaDoppioni(S: TStringList);
Ehi, Andrea, l'OP voleva l'algoritmo, non la pappa pronta :-)


Ehi, Andrea, l'OP voleva l'algoritmo, non la pappa pronta :-)
Ah, allora era Off Topic.
Per gli algoritmi rivolgersi a it.comp.programmare.  Io presuppongo
che se qualcuno mi chiede un algoritmo in un ng che parla di Delphi,
stia chiedendo di risolvere il problema in Delphi e, per questo, gli
offro _qualcosa di meglio_ dell'algoritmo, gli offro la soluzione. 


 ha scritto nel messaggio
news:6dcq3vc3r9itt6pim...@4ax.com...



    ABLS Team (
www.abls.it
)
········································

Ah, allora era Off Topic.
Il mio post era ironico :-)
Fai benissimo a postare codice, però a volte per un niubbo che voglia
migliorarsi è meglio avere solo l'indicazione dell'idea da percorrere,
in questo modo sarà costretto a scriversi lui il codice, capendo cosa
fa. 
Così la prossima volta che avrà un problema simile saprà cavarsela da
solo, senza scomodare di nuovo l'ng.


 solo, senza scomodare di nuovo l'ng.
Concordo al 100%.
Se uno le cose non le prova ma ha la pappa pronta poi ne approfitta come se
avesse trovato i polli che faticano per lui.
Mi è capitato proprio oggi di aver risposto su un altro NG ad un tizio che
ha mandato 3 messaggi consecutivi (dopo che gli rispondevo) in cui chiedeva
dove scaricare alcuni software.
Ad esempio:
1) dove scarico nero? e io: 
www.ahead.com
2) dove scarico getright? e io: 
www.getright.com
3) dove scarico tiziocaioesempronio?... etc.
A questo punto non mi sembra che il ragazzo abbia cercato affannosamente
nero senza risultati e di conseguenza gli altri ma che voglia che un pollo
che lo ha fatto prima di lui gli dia già la pappa pronta così lui non si
sporca le mani.
Scusate l'OT del messaggio ma sono ancora incavolato nero per questo fatto
ed ho bisogno di sfogarmi. :-)
Ciao

Ah per l'appunto: non sono proprio un niubbo del delphi, però ci sono alcune
cose poco chiare che..quando non riesco a risolvere, chiedo in giro ;-)
Avete ragione, non bisogna mai dare la pappa pronta agli utenti. La gente si
abitua subito ad avere tutto e rapidamente, e quando non è cosi si
arrabbiano..ehh che ci vuoi fa
Per quanto riguarda il mio caso proverò a studiarmi la soluzione in object
pascal e solo alla fine controllare l'algoritmo. Per quanto riguarda la
proprietà Duplicates, terrò a mente :)
Buona programmazione a tutti!! :)


fa. 
Su __questo__ gruppo io continuerò a postare codice, chi vuol
migliorare impara, eventualmente, dal codice scritto dagli altri.  
Se si vuol avere soltanto un'indicazione su un algoritmo o su un
metodo da seguire e lo si fa in questo _gruppo_, ci sono più
possibilità che arrivi il codice già bello e pronto che solo
indicazioni di massima in pseudo-codice.  Onestamente, essere
"rimproverato" perché risolvo i problemi degli altri non mi va proprio
giù ;-)


 Su __questo__ gruppo io continuerò a postare codice, chi vuol
Cappero, ma vedo che ultimamente sei molto "codicioso" :)
-- 
Jax