Mam 1000słów i chciałbym sprawdzić czy jakieś nie występuje 2x. Jak rozwiązać takie sprawdzanie? Nie chciałbym ładować do zmiennej 1 słowa i n-tego słowa i porównywać. Czy istnieje jakiś szybszy sposób? Co jeśli mam 2 tablice takich słów.
0
0
Przez zliczanie. Wrzucaj słowa do HashMapy po prostu.
0
Można też wrzucać do zbioru (Set), a na końcu porównać wielkość tablicy i zbioru.
0
Na pewno słowa masz w pliku. Jeśli chcesz usunąć duplikaty to skorzystaj z jest to bardzo szybki sposób na sprawdzanie duplikatów :
http://delphi.about.com/od/delphitips2009/qt/remove-duplicat.htm
A jeśli chcesz zobaczyć np co się duplikuje a później kasuje (Llistbox zamień na TStringList) to :
var
i,j : integer;
begin
for i := 0 to Listbox1.Items.Count - 2 do
begin
j := i + 1 ;
while j < Listbox1.Items.Count do
begin
if Listbox1.Items.Strings[i] = Listbox1.Items.Strings[j] then
begin
Showmessage('Słowo : '+ Listbox1.Items.Strings[i]+#13+'powtórzyło się i zostanie skasowane !!!');
Listbox1.Items.Delete(j)
end else
Inc(j);
end;
Caption := inttostr(Listbox1.Items.Count);
end;
end;