Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в TMemo1 удалять все строки начинающиеся с # [D5, NT4]


OGR ©   (2002-01-28 00:13:00) 

Подскажите пожайлуста....
Как в TMemo1 удалять все строки начинающиеся с символа # ?
Спасибо.


Anatoly Podgoretsky   (2002-01-28 09:08:00) [1]

И все равно не совсем правильно, будет ошибка если Length(Memo1.Lines[I][1])<1
Надо или проверку длины или POS()=1


panov   (2002-01-28 07:44:00) [2]

Да уж, прошу прощения за море очепяток.
Спасибо Mbo за вовремя внесенные исправления:-)


Mbo   (2002-01-28 07:41:00) [3]

sorry, в варианте с for
for i := Memo1.Lines.Count-1 DOWNTO 0 do
...
причем этот способ несколько быстрее для больших списков
(меньшие количества памяти сдвигаются с помощью Move при Delete)


Mbo   (2002-01-28 07:33:00) [4]

неправильно ;(

у panov © надо исправить первую строку
for i := Memo1.Count-1 DOWNTO 0 do

у Jano
I := 0;
while I < Memo1. Lines.Count do begin
if Memo1.Lines[I][1] = "#" then
Memo1.Lines.Delete(I)
else
Inc(I);
end;



panov   (2002-01-28 07:10:00) [5]

>Jano © (28.01.02 02:51)
Неправильно. В цикле возникнет ошибка (index of bound).
Правильно так:

fori := 0 toMemo1.Count-1 do
begin
ifMemo1.Lines[i][1] ="#" thenMemo1.Lines.Delete(i);
end;


Jano   (2002-01-28 02:51:00) [6]


I := 1;
while I <= Memo1.Count do begin
if Memo1.Lines.Strings[I][1] = "#" then
Memo1.Lines.Delete(I - 1)
else
Inc(I);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо