Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.20;
Скачать: 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 вся ветка

Текущий архив: 2008.04.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1206603785
AlexeyMir
2008-03-27 10:43
2008.04.20
Locate,LocateNext в Interbase


15-1204547059
TIF
2008-03-03 15:24
2008.04.20
Exit poll, выборы и... немного математики. Любителям головоломок


2-1206440513
031178
2008-03-25 13:21
2008.04.20
Помогите плиз...


15-1204721767
Petr V. Abramov
2008-03-05 15:56
2008.04.20
Позаботились об отечественном IT


8-1178253224
TIF
2007-05-04 08:33
2008.04.20
3D Max и Delphi