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

Вниз

Удаление пустой строки   Найти похожие ветки 

 
sloosar ©   (2009-11-25 23:11) [0]

Как удалить пустую строку с TStringList???
f : TSTringList;
procedure DeleteEnt;
var i : integer;
begin
 for i:=0 to f.Count-1 do
 if f.Strings[i]="" then f.Delete(i);
end;

Пробовал так, не получается :-(


 
Игорь Шевченко ©   (2009-11-25 23:19) [1]

Строки в StringListе удаляют с конца


 
Плохиш ©   (2009-11-25 23:34) [2]


> Как удалить пустую строку с TStringList???
>


> Пробовал так, не получается :-(

Что, не удаляется?


 
korneley ©   (2009-11-26 01:57) [3]

Попробую издалека:
1) Не каждый символ чем-то гадит на экране, и, как следствие, строка не пустая, но ничего не видно.
2) Не каждый пробел - #32. #160 тоже бывает... и т.д.
3) Есть "Перевод строки" и "Возврат каретки" это 2 (два) символа.
4) Пункт "3" не для всех редакторов/ОС. Иногда только #10, а иногда и только #13
5) Что в стринглист напихано никому не понятно.
6) см. [1] + downto + F1
7) И, в конце концов, что такое "пустая строка?"


 
Германн ©   (2009-11-26 02:10) [4]


> korneley ©   (26.11.09 01:57) [3]
>
>

А может не стОит ? :)


 
korneley ©   (2009-11-26 02:21) [5]


> Германн ©   (26.11.09 02:10) [4]
> А может не стОит
> ? :)

А вот такой я оптимист :) Верю в обучаемость людей:))) Поэтому - СтОит! Я же не рыбу предлагаю, а сети...


 
brother ©   (2009-11-26 05:45) [6]

согласен с [3] п.7
что видно в отладчике на

> if f.Strings[i]="" then f.Delete(i);

при "пустой" строке


 
brother ©   (2009-11-26 05:48) [7]

> if f.Strings[i]="" then f.Delete(i);

может так:
if Length(f.Strings[i]) <= 3 then f.Delete(i); // те если в строке меньше или 3 символа - она пустая (кол-во можно варьировать)


 
Юрий Зотов ©   (2009-11-26 06:04) [8]

for i := f.Count - 1 downto 0 do
 if Trim(f.Strings[i]) = "" then f.Delete(i);


 
sloosar ©   (2009-11-26 09:46) [9]

Я так понял если применить Delete(1) к строкам :

текст
текст
текст

то получится

текст

текст

???


 
Сергей М. ©   (2009-11-26 09:54) [10]


> ???


Не получится.

Deletr не "очищает" строку, а удаляет ее из списка с соотв.коррекцией кол-ва его элементов и индексов эл-тов, следующих после удаляемым.


 
RWolf ©   (2009-11-26 09:56) [11]


> for i:=0 to f.Count-1 do
>  if f.Strings[i]="" then f.Delete(i);

во-первых, просто f[i]
во-вторых, границы цикла for в дельфи вычисляются до выполнения итераций цикла, поэтому этот код будет постоянно выкидывать эксепшены.


 
sloosar ©   (2009-11-26 10:19) [12]

Просто у меня есть файл в котором например записано:
"

а1
а2
а3
а4

"
мне нужно что бы было так
"
а1
а2
а3
а4
"
(без пустых строк)


 
brother ©   (2009-11-26 11:16) [13]

> Просто у меня есть файл в котором например записано:

ууу, как все запущено...


 
Anatoly Podgoretsky ©   (2009-11-26 11:23) [14]

Тут не писатель нужен, а читатель.


 
~AQUARIUS~ ©   (2009-12-02 11:03) [15]

f : TSTringList;
procedure DeleteEnt;
var i : integer;
begin
 i := 0;
 while i < f.Count do
   if trim(f.[i]) = "") then f.Delete(i) else inc(i);
end;


 
RWolf ©   (2009-12-02 14:28) [16]


> ~AQUARIUS~
циклом for по убыванию индекса шустрее будет.



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

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

Наверх





Память: 0.48 MB
Время: 0.005 c
2-1259677152
SergP
2009-12-01 17:19
2010.01.24
Запуск консольного приложения из доп. потока


3-1233556346
Sergey2
2009-02-02 09:32
2010.01.24
update таблицы в Paradox


15-1258288584
GrayFace
2009-11-15 15:36
2010.01.24
К теме "Убойная статистика"


15-1258619414
Юрий
2009-11-19 11:30
2010.01.24
С днем рождения ! 19 ноября 2009 четверг


4-1227602398
Lamer6666
2008-11-25 11:39
2010.01.24
Как отправить AT команду модему?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский