![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Здраствуйте, у меня проблема.
Пытаюсь убрать повторяющиеся строки из Memo. Причем не учитывая данные в [ ] Код:
Кусок из мемо: [30.4.2009 7:9:25] login=user1 | ip=195.58.235.14 [30.4.2009 8:35:10] login=user2 | ip=81.23.190.39 [30.4.2009 9:1:0] login=user3 | ip=195.58.235.14 <--- Эту строку надо оставить [30.4.2009 8:12:56] login=user3 | ip=195.58.235.14 <--- Эту строку надо удалить Удаляю повторы вот таким кодом: Код:
procedure DeleteEmpty;
var
zz:Integer;
begin
zz:=0;
repeat
zz:=zz+1;
if Form1.Memo1.Lines[zz]='' then begin Form1.Memo1.Lines.Delete(zz);
zz:=0;
end;
until zz=Form1.Memo1.Lines.Count-1;
end;
procedure TForm1.Button9Click(Sender: TObject);
var
i,ii: Integer;
str,sstr : String;
begin
i:=0;
repeat
i:=i+1;
ii:=0;
str:=Copy(Memo1.Lines[i],pos(']',Memo1.Lines[i])+1,Length(Memo1.Lines[i]));
repeat
sstr:=Copy(Memo1.Lines[ii],pos(']',Memo1.Lines[ii])+1,Length(Memo1.Lines[ii]));
if str=sstr then Memo1.Lines[ii]:='';
ii:=ii+1;
until ii=Memo1.Lines.Count;
Memo1.Lines[i]:=str;
until i=Memo1.Lines.Count;
DeleteEmpty;
end;При обработки Memo в 10000 линий процесс затягивается до одного часа а то и больше , а это плохо Вообщем помогите оптимизировать .А тем кто поможет подарю восьмизначный номерок ![]() ============ Зарание благодарю. |