Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
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;
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);
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] );
if Memo2.Lines.IndexOf( Memo1.Lines[i] )< 0 then
Memo2.Lines.Append( Memo1.Lines[i] );

