2nd
Дек

Копирование строк из Memo1 в Memo2, различные способы

Posted by Chas under Топик-обзор

Здравствуйте!
Нужно копировать все строки из мемо1 в мемо2, но проверять нет ли такой же строки уже в мемо2, тоесть копировать в мемо2 только то, что там ещё нет.

1 способ:

var
  a,b:integer;
  con:boolean;
begin
  for a:=0 to memo1.Lines.Count-1 do
  begin
    con:=false;
    for b:=0 to memo2.lines.count-1 do
    begin
      if memo1.lines.Strings[a]=memo2.Lines.Strings[b] then con:=true;
    end;
   if not con then memo2.Lines.Add(memo1.lines.Strings[a]);
  end;
end;

2 способ:

С отсортированным списком можно уложиться в 3 строки

StringList1.Sorted := true;
StringList1.Duplicates := dupIgnore;
StringList1.AddStrings(StringList2);

3 способ:
Как ни странно, но не с отсортированным, используя алгоритм, который сразу предложил Stilet, тоже в три строчки

for i:=0 to Memo1.Lines.Count-1 do
    if Memo2.Lines.IndexOf( Memo1.Lines[i] )< 0 then
      Memo2.Lines.Append( Memo1.Lines[i] );

и другие способы

Похожие статьи

Теги: |