Fórum ListBox: Remover nomes repetidos #324488
29/06/2006
0
Maria
Carlos
Maria
João
Maria
Maria
Carlos
removendo ficaria:
Maria
Carlos
João
Delphitotal
Curtir tópico
+ 0Posts
29/06/2006
Delphitotal
Gostei + 0
29/06/2006
Massuda
... // S é a string a ser inserida no listbox LB if LB.Items.IndexOf(S) < 0 then begin LB.Items.Add(S); end; ...
Gostei + 0
29/06/2006
Marco Salles
procedure TForm1.Button1Click(Sender: TObject); var i:integer; listanome:TStringList; begin i:=0; listanome:=TStringList.Create; for i:=1 to listBox1.Count-1 do begin if listanome.IndexOf(listbox1.Items.Strings[i]) < 0 Then listanome.Add(listbox1.Items.Strings[i]) end; listbox1.Clear; listbox1.Items.AddStrings(listanome); listanome.Free; end;
Gostei + 0
29/06/2006
Delphitotal
cara eu fiz o teste e o seu código funcionou ... mais tem uma coisa..
eu mandei ele tirar os repetidos com o seu código ele tirou direitinho .. mais depois quando mandei tirar os repetidos novamente na lista ele foi excluindo os que não estavam repetidos..
teria como arrumar isso???
Gostei + 0
29/06/2006
Delphitotal
Consegui de outra maneira:
procedure TForm1.RemoverRepetidos; var i, listIndex : integer; str : string; begin for i:=ListBox1.Items.Count - 1 downto 0 do begin str := ListBox1.Items.Strings[i]; listIndex := ListBox1.Items.IndexOf(str); if (listIndex <> -1) AND (listIndex <> i) then begin ListBox1.Items.Delete(listIndex); end; end; end;
Para remover todos os repetidos da lista faça o seguinte:
procedure TForm1.Button1Click(Sender: TObject); begin RemoverRepetidos; end;
Gostei + 0
30/06/2006
Marco Salles
erro de digitação
trocar
for i:=1 to listBox1.Count-1 do por for i:=0 to listBox1.Count-1 do
mas de qualquer forma voce arranjou uma saida .. legal
Gostei + 0
30/06/2006
Delphitotal
ótimo agora consegui varios exemplos incluindo o seu ..
vlw por tudo ..
agradeço pela ajuda .
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)