Вниз
Скачать: CL | DM;

Сохранение ListBox со сложными строками   Найти похожие ветки 

← →
Pavelkq   (2008-03-21 14:24) [0]

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


← →
Jeer ©   (2008-03-21 14:26) [1]

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


← →
Сергей М. ©   (2008-03-21 14:27) [2]


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


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

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


← →
Pavelkq   (2008-03-21 14:29) [3]

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


← →
Сергей М. ©   (2008-03-21 14:29) [4]


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


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

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


← →
Jeer ©   (2008-03-21 14:33) [5]

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


← →
Сергей М. ©   (2008-03-21 14:36) [6]


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


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


← →
Jeer ©   (2008-03-21 14:40) [7]

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


← →
Сергей М. ©   (2008-03-21 14:44) [8]

Согласен)


← →
Pavelkq   (2008-03-21 14:51) [9]

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


← →
Palladin ©   (2008-03-21 15:00) [10]

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

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


← →
{RASkov} ©   (2008-03-21 15:18) [11]

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

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


← →
Palladin ©   (2008-03-21 15:20) [12]

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


← →
Jeer ©   (2008-03-21 15:28) [13]


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


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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.015 c
2-1206519877
Andrewtitoff
2008-03-26 11:24
2008.04.20
Как удалить файл из проекта Delphi 2007


2-1206285323
smartleds
2008-03-23 18:15
2008.04.20
Создал массив Трэк баров , подскажите как создать один


2-1206488896
tim
2008-03-26 02:48
2008.04.20
потоки


2-1206372200
Thrasher
2008-03-24 18:23
2008.04.20
Код цвета.


2-1206286332
hahol_64_rus
2008-03-23 18:32
2008.04.20
не могу и все тут ....(с логикой )




   Наверх