![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Собстенно проблема вот в чем:
При добавлении в TStringList.Add каких либо строк, метод автоматом переводит каретку на новую строку. В итоге когда я сохраняю TStringList.SaveToFile у меня в конце текстовика остается лишняя (ненужная) пустая строка. Как этого избежать? TStringList.Insert тоже не погает. Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
У этого класса есть метод Delete Укажи ему индексим Count...
Хотя с твоей проблемой я не сталкивался...
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.05.2007
Сообщений: 373
|
![]()
либо перед сохранением удаляй последнюю (пустую) строчку,
либо добавление делай не так TStringList.Add(s), а так: TStringList.Text:=TStringList.Text+ #13#10+s s - это переменная типа string.
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен: "Перемен!Мы ждем перемен!" |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
![]()
Добавление символов перевода каретки в конец StringList - особенность реализации и с этим ничего не поделаешь.
Приходится, если эти символы мешают, выкручиваться. Можно сделать копию строки, содержащейся в StringList без двух конечных символов [S := Copy(SL.Text, 1, Length(SL.Text)-2); где S : string], затем записывать эту строку в файл. Конечно, теряется преимущество работы с файлами StringList, но из двух "зол" выбирают то, которое больше по нраву. Если символы в конце действительно мешают (не помню случая чтобы это было), то можно перенести строку из StringList в MemoryStream. Этот класс записывает в файл ничего не добавляя в конец. Код:
Ntlegend, ни первый, ни второй совет не поможет, хмурый дядя Borland не даст. Последний раз редактировалось Скандербег; 03.06.2009 в 18:35. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.03.2011
Сообщений: 11
|
![]()
Перед SaveToFile, делаем
StringList.Text:=trim(StringList.Te xt); //Удаляем "пустые" символы по краям Enjoy! |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Метод SaveToFile ВСЕГДА добавляется пустую строку в конец. Вне зависимости от содержимого Text во-вторых, зачем писать в тему 5 (ПЯТИЛЕТНЕЙ) давности?! Хочем понекропостить?! ![]() |
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Ещё 5 лет назад выкрутился просто через TFileStream удаляю последние два байта и всё
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
FaTaL, так в пост #4 Скандербег предложил решение чуть-чуть проще: писать Text в файл через TFileStream, тогда ничего лишнего не запишется и удалять ничего не потребуется!
![]() Впрочем, что это я... Проблемы уже пять лет, как нет, а я туда же, в обсуждение... ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
add project | lalilulelo | Помощь студентам | 3 | 26.05.2009 10:18 |
Класс TStringlist | vitamin.rulez | Помощь студентам | 1 | 09.02.2009 14:42 |
TStringstream VS Tstringlist | Lich | Работа с сетью в Delphi | 2 | 06.01.2009 10:54 |
TStringList | nimf | Общие вопросы Delphi | 5 | 15.11.2007 14:44 |
Класс TStringList | Pblog | Обсуждение статей | 0 | 27.05.2007 02:13 |