![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте, подскажите пожалуйста, где-то косячу с циклами.
Есть два ListBox, в ListBox1 допустим 20 items, в ListBox2 1000 aitems, нужно чтобы строки из ListBox перенеслись в ListBox2, но при условии, что в ListBox2 ещё нет такой строки. Делаю так: Код:
procedure TForm1.BbAddDicClick(Sender: TObject);
var
i, i1 : integer;
Key1 : string;
begin
for i := 0 to ListBox1.Items.Count - 1 do
begin
Key1 := ListBox1.Items[i];
for i1 := 0 to ListBox2.Items.Count - 1 do
if Key1 <> ListBox2.Items[i1] then
ListBox2.Items.Add(ListBox1.Items[i]);
end;
end;Помогите пожалуйста. |
|
#2
|
|||
|
|||
|
Ну правильно получается такая фигня.
Что написал, то и получается. Тебе надо во внутреннем цикле добавлять только если не найдено по итогам всего цикла. А лучше, для простоты понимания, воспользоваться методом IndexOf: Код:
var
i : Integer;
begin
for i := 0 to ListBox1.Items.Count - 1 do
if ListBox2.Items.IndexOf(ListBox1.Items[i]) = -1 Then
ListBox2.Items.Add(ListBox1.Items[i])
end |