|
|
Регистрация | << Правила форума >> | 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 линий процесс затягивается до одного часа а то и больше , а это плохо Вообщем помогите оптимизировать . А тем кто поможет подарю восьмизначный номерок ============ Зарание благодарю. [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |