Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение ListBox со сложными строками [D6, XP]


Pavelkq ©   (2008-03-21 14:24:00) 

Пытаюсь сохранить ListBox:
ListBox1.Items.SaveToFile(Filename);
Затем читаю:
ListBox1.Items.LoadFromFile(Filename);
Если в строке содержится обычный текст, то все работает корректно. Но у меня иногда бывают строки с символами переносом строки (типа: 'фыва#13фыва'). Тогда при чтении в листбокс попадает только первая часть переменной. Вторая часть попадает уже на следующий элемент. Как проще это устранить?


Jeer   (2008-03-21 15:28:00) [1]


> {RASkov} ©   (21.03.08 15:18) [11]


:)))
но спустя .... тоже не подошла, вот тогда вставил текст книжечки "Война и мир" и проблем пока нет.


Palladin   (2008-03-21 15:20:00) [2]

ну я на это и намекал :)


{RASkov}   (2008-03-21 15:18:00) [3]

> [10] Palladin ©   (21.03.08 15:00)

Через пять лет:
"Ура! $A0 не прокатил, и #....# тоже, но последовательность спецсимволов ###!!!##!!#!#!!##!!!### (которая вряд ли встретится в текстовом файле) вполне подошла. Поюзал функцию StringREplace. Спасибо за идею!
"


Palladin   (2008-03-21 15:00:00) [4]

угу, а когда встретится, ты воскликнешь

"Ура! $A0 не прокатил, и #!# тоже, но последовательность спецсимволов #!!# (которая вряд ли встретится в текстовом файле) вполне подошла. Поюзал функцию StringREplace. Спасибо за идею!
"


Pavelkq   (2008-03-21 14:51:00) [5]

Ура! $A0 не прокатил, но последовательность спецсимволов #!# (которая вряд ли встретится в текстовом файле) вполне подошла. Поюзал функцию StringREplace. Спасибо за идею!


Сергей М.   (2008-03-21 14:44:00) [6]

Согласен)


Jeer   (2008-03-21 14:40:00) [7]

Как мы с тобой понимаем, путей, на самом-то деле, даже не два - намного больше, но проблема в штурмане.:)


Сергей М.   (2008-03-21 14:36:00) [8]


> Jeer ©   (21.03.08 14:33) [5]


Бесспорно.
Но если уж вляпался и назад пути нет, то приходится как-то выкручиваться)


Jeer   (2008-03-21 14:33:00) [9]

Держать в стринге то, что на самом деле является multiline text - явно технологическая недоработка.


Pavelkq   (2008-03-21 14:29:00) [10]

Тогда при сопоставлении с исходным текстом совпадение не будет найдено.
Кстати, при чтении стандартными ReadLn(F,s) из сохраненного файла именно такая замена и происходит.


Сергей М.   (2008-03-21 14:29:00) [11]


> Jeer ©   (21.03.08 14:26) [1]


Потом сложно (если вообще возможно) будет отличить настоящий пробел от "липового".

$A0 будет понадежней - он во многих фонтах выглядит как пробел, естественно таковым не являясь.


Сергей М.   (2008-03-21 14:27:00) [12]


> Как проще это устранить?


Перед сохранением замени все CR в каждой строке списка на, например, символ с кодом $A0

После загрузки выполни обратную замену.


Jeer   (2008-03-21 14:26:00) [13]

Заменить CRLF на пробел в каждом item


Наверх

Титульная страница Поиск, карта сайта Написать письмо