Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

Как удалить пустые строки из Memo?   Найти похожие ветки 

 
Roun   (2007-08-07 16:08) [0]

Сохраняю содержимое Memo в txt-файл.
Как сделать, чтобы при сохранении, пустые строки автоматически удалялись?

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


 
Tack ©   (2007-08-07 16:18) [1]

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


 
tesseract ©   (2007-08-07 16:21) [2]

Вроде этого - набросано за пару секунд, может не работать.

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


 
Германн ©   (2007-08-07 16:35) [3]


> Roun   (07.08.07 16:08)
>
> Сохраняю содержимое Memo в txt-файл.
> Как сделать, чтобы при сохранении, пустые строки автоматически
> удалялись?
>

Не записывать пустые строки в txt-файл.


 
tesseract ©   (2007-08-07 16:38) [4]


> Не записывать пустые строки в txt-файл.


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


 
Германн ©   (2007-08-07 17:19) [5]


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

Тогда сабж
> Как сделать, чтобы при сохранении, пустые строки автоматически
> удалялись?

решения не имеет.


 
Anatoly Podgoretsky ©   (2007-08-07 19:47) [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


 
Roun   (2007-08-07 21:19) [7]

Подводя итоги Вашим советам получается:
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

Так получается?


 
Германн ©   (2007-08-07 21:43) [8]


> Так получается?
>

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


 
Roun   (2007-08-07 21:57) [9]

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

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


 
MetalFan ©   (2007-08-07 22:05) [10]


> Обычно, любую задачу сначала решают на черновике (на листке
> бумаги), а только потом оформляют.

ну так решай, кто тебе мешает?
если не можешь решить на бумаге, то остается методом тыка. и в этом нет ничего страшного имхо.


 
{RASkov} ©   (2007-08-08 00:29) [11]

> [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...
Можно и еще как нибудь придумать.... этж программирование, как запрограммируешь так и будет.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
2-1186492191
poroshm
2007-08-07 17:09
2007.09.02
не могу использовать RandomFrom почему?


2-1186903598
Debug
2007-08-12 11:26
2007.09.02
Закрытие вкладки TPageControl


2-1186587997
Ага
2007-08-08 19:46
2007.09.02
Как удалить компонент?


15-1185581224
Nic
2007-07-28 04:07
2007.09.02
Задержки зарплаты


2-1186558517
Евгений Р.
2007-08-08 11:35
2007.09.02
upper для русских букв FB 1.5.3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский