Як видалити порожні рядки з memo

Як видалити порожні рядки з Memo?

Зберігаю вміст Memo в txt-файл.
Як зробити, щоб при збереженні, порожні рядки автоматично віддалялися?

строка_1
строка_2
Строка_3
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0;<--удалить
Строка_5
Строка_6

Перебрати всі рядки (Memo1.Lines) з кінця (for i: = Memo1.Lines.Count - 1 downto 0 do.). Якщо зустрічаємо рядок (Memo1.Lines [i]), яка порожня (= ""), то видаляємо її по Memo1.Lines.Delete (i)

Начебто цього - накидано за пару секунд, може не працювати.

count: = 0;
repeat
if length (memo1.lines [count]) = 0
# XA0; then memo1.lines.delete (count)
else
inc (count)
until (count<>memo1.lines.count);


> Roun # XA0; (07.08.07 16:08)
>
> Зберігаю вміст Memo в txt-файл.
> Як зробити, щоб при збереженні, порожні рядки автоматично
> Віддалялися?
>

Чи не записувати порожні рядки в txt-файл.


> Чи не записувати порожні рядки в txt-файл.

він через SaveTofile напевно пише.


> Він через SaveTofile напевно пише.
>

тоді сабж
> Як зробити, щоб при збереженні, порожні рядки автоматично
> Віддалялися?

рішення не має.


> repeat
> If length (memo1.lines [count]) = 0

Так не треба робити, по суті три помилки

1. memo1.lines.count може дорівнювати нулю, добре якщо пощастить і вилетимо помилково

2. Length для рядка хоча б з одним пропуском буде більше нуля

3. until (count<>memo1.lines.count); виконається тільки один або два рази. А якщо поставити until (count = memo1.lines.count); то ризик зациклення наближається до одиниці при count = 0

Підводячи підсумки Ваших порад виходить:
for i: = Memo1.Lines.Count - 1 downto 0 do
# XA0; if Memo1.Lines [i] = "" then Memo1.Lines.Delete (i);
if Memo1.Lines.Count> 0 then
і далі SaveTofile

> А самому перевірити лінь?

Пропонуєш діяти методом тику? За принципом: «працює - значить правильно»?
Зазвичай, будь-яке завдання спочатку вирішують на чернетці (на листку паперу), а тільки потім оформляють.


> Зазвичай, будь-яке завдання спочатку вирішують на чернетці (на листку
> Паперу), а тільки потім оформляють.

ну так вирішуй, хто тобі заважає?
якщо не можеш вирішити на папері, то залишається методом тику. і в цьому немає нічого страшного имхо.

> [7] Roun # XA0; (07.08.07 21:19)
> Так виходить?

Якщо прогалини - це не "порожній рядок", то так [7] або так:
while Pos (# 13 # 10 # 13 # 10, Memo1.Text)> 0 do
# XA0; Memo1.Text: = StringReplace (Memo1.Text, # 13 # 10 # 13 # 10, # 13 # 10, [rfReplaceAll]);

Інакше в [7] if Trim (Memo1.Lines [i]) = "" then.
Можна і ще як небудь придумати. етж програмування, як запрограмуєш так і буде.

Пам'ять: 0.74 MB
Час: 0.097 c