Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизРабота с мемо Найти похожие ветки
← →
tigraman (2007-04-17 00:24) [0]Я понимаю конечно что глупый вопрос, но всетаки, подскажите как из мемо поудалять все одинаковые строки, я делю так:
for i:=0 to Memo3.Lines.Count-1 do begin
for j:=0 to Memo3.Lines.Count-1 do begin
if memo3.Lines.Strings[i]=memo3.Lines.Strings[j]
then
memo3.Lines.Delete(j);
end; end;
но не все одинаковые строки удаляются почему то, подскажите как правильно. А также если работать с массивом строк, а не с мемо, будет ли программа работать быстрее?
← →
Германн © (2007-04-17 01:26) [1]
> tigraman (17.04.07 00:24)
>
> Я понимаю конечно что глупый вопрос, но всетаки, подскажите
> как из мемо поудалять все одинаковые строки,with Memo3.Lines do
for i:=Count-1 downto 1 do
if Strings.IndexOf(Strings[i]) <> i then Strings.Delete(i);
{RASkov} и ЮЗ - простите за банальность!
:-)
← →
{RASkov} (2007-04-17 02:11) [2]> [0] tigraman (17.04.07 00:24)
Гениальный подход... Перед сном посмеялся :)
> [1] Германн © (17.04.07 01:26)
:)
← →
{RASkov} (2007-04-17 02:31) [3]Хотя мысль была почти в правильном направлении, зря посмеялся, ну да ладно улыбнуло :)
for i:=Memo3.Lines.Count-1 downto 1 do begin
for j:=0 to i-1 do begin
if memo3.Lines[i]=memo3.Lines[j] then memo3.Lines.Delete(j);
end;
end;
> [0] tigraman
Что-то напоминает [1] неправда ли?
← →
Tigraman (2007-04-17 14:32) [4]Вот этот код работает быстрее последнего:
with Memo1.Lines do begin
for i:=Count-1 downto 1 do
if IndexOf(Strings[i]) <> i then Delete(i);
end;
Последний также подвисает при больших объемах данных.
Спасибо всем.
← →
{RASkov} (2007-04-17 14:36) [5]> [4] Tigraman (17.04.07 14:32)
:)
> Что-то напоминает [1] неправда ли?
Я хотел выделить этим о двух циклах в разных направлениях.... вот. И то - что в [3] - оно наверное не правильно будет работать.... только подправил код из [0] для примера. "плохого"...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c