![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить пустые строки из Memo?
Roun © (2007-08-07 16:08:00)Сохраняю содержимое Memo в txt-файл.
Как сделать, чтобы при сохранении, пустые строки автоматически удалялись?
Строка_1
Строка_2
Строка_3
<--удалить
Строка_5
Строка_6
{RASkov} (2007-08-08 00:29:00) [1]> [7] Roun (07.08.07 21:19)
> Так получается?
Если пробелы - это не "пустая строка", то так [7] или так:
while Pos(#13#10#13#10, Memo1.Text)>0 do
Memo1.Text:=StringReplace(Memo1.Text, #13#10#13#10, #13#10, [rfReplaceAll]);
Иначе в [7]if Trim(Memo1.Lines[i])='' then...
Можно и еще как нибудь придумать.... этж программирование, как запрограммируешь так и будет.
MetalFan (2007-08-07 22:05:00) [2]
> Обычно, любую задачу сначала решают на черновике (на листке
> бумаги), а только потом оформляют.
ну так решай, кто тебе мешает?
если не можешь решить на бумаге, то остается методом тыка. и в этом нет ничего страшного имхо.
Roun (2007-08-07 21:57:00) [3]> А самому проверить лень?
Предлагаешь действовать методом тыка? По принципу: «работает – значит правильно»?
Обычно, любую задачу сначала решают на черновике (на листке бумаги), а только потом оформляют.
Германн (2007-08-07 21:43:00) [4]
> Так получается?
>
А самому проверить лень?
Roun (2007-08-07 21:19:00) [5]Подводя итоги Вашим советам получается:
for i := Memo1.Lines.Count - 1 downto 0 do
if Memo1.Lines[i]='' then Memo1.Lines.Delete(i);
if Memo1.Lines.Count>0 then
и дальше SaveTofile
Так получается?
Anatoly Podgoretsky (2007-08-07 19:47:00) [6]
> 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
Германн (2007-08-07 17:19:00) [7]
> он через SaveTofile наверно пишет.
>
Тогда сабж
> Как сделать, чтобы при сохранении, пустые строки автоматически
> удалялись?
решения не имеет.
tesseract (2007-08-07 16:38:00) [8]
> Не записывать пустые строки в txt-файл.
он через SaveTofile наверно пишет.
Германн (2007-08-07 16:35:00) [9]
> Roun (07.08.07 16:08)
>
> Сохраняю содержимое Memo в txt-файл.
> Как сделать, чтобы при сохранении, пустые строки автоматически
> удалялись?
>
Не записывать пустые строки в txt-файл.
tesseract (2007-08-07 16:21:00) [10]Вроде этого - набросано за пару секунд, может не работать.
count:=0;
repeat
if length(memo1.lines[count]) =0
then memo1.lines.delete(count)
else
inc (count)
until (count<>memo1.lines.count);
Tack (2007-08-07 16:18:00) [11]Перебрать все строки (Memo1.Lines) с конца (for i := Memo1.Lines.Count - 1 downto 0 do ...). Если встречаем строку (Memo1.Lines[i]), которая пустая ( = '' ), то удаляем ее по Memo1.Lines.Delete(i)