![]() |
|
|
![]()
|
|
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Зачем тебе пихать что-то в memo в цикле, оно затираться будет в любом случае ?
Я говорю про кусок кода, где тебе нужно выводить строки. Я правильно понимаю структуру, в ListBox'e есть итемы, каждому итему назначена структура grp, каждая структура grp содержит какие-то данные, в том числе и многострочное info ? Видимо при клике на итем куда-то у тебя отображаются все эти данные из grp. Некое подобие базы данных ? Так вот я не вижу никаких припятствий в том, чтобы AnsiString заменить на указатели TStringList. А при выборе итема делать Memo->Assign(grp->moyStringList); |
|||
|
||||
| artsb |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
SABROG огромное тебе спасибо, ты натолкнул на мысль. Сделал проще:
Структуру не менял. Просто в обработчике клика по ListBox1 написал:
А при добавлении записи в вектор:
В inf у меня всегда хранится DelimitedText. Всё сохраняется и считывается, т.е. всё круто. Ещё раз ОГРОМНОЕ тебе спасибо! Но у меня маленький вопросик: Если в Memo: =========================== привет как дела пока =========================== то в inf: =========================== привет|"как дела"|пока =========================== Так вот, если юзверь захочет в Memo нарисовать рожицу с использованием '|', могут быть проблемы. Можно ли вместо одного символа использовать несколько. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Нет, там тип char. Т.е. всего 1 байт отведен под эти цели. Но можно попробывать использовать непечатные символы, например 0x00-0x1F. Только не знаю запишется ли строка в .ini файл.
Еще есть сомнения насчет интерпретации разделителя внутри кавычек " ". Экспериментируй, сделай стресстест. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Всё равно, БОЛЬШОЕ тебе спасибо.
Это сообщение отредактировал(а) artsb - 11.12.2007, 22:19 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| ama_kid |
|
||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Народ, если честно - не понимаю, зачем так все сложно? Есть ведь функция StringReplace. Юзается примерно следующим образом:
При записи в ini-файл:
Считывается, соответственно, с обратной заменой
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
ama_kid ты прав, спасибо попробую.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Как по мне, так мой вариант все же компактней. И я проверил, если разделитель стоит внутри кавычек, то он не считается разделителем. Даже если пользователь напишет строку в кавычках, скажем цитирование, да еще и со смайликом: "Ни дня без строчки кода :|" То все обрабатывается нормально и точно также выведется без искажений. Внутренние кавычки не посчитаются за новую строку и смайлик не посчитается за разделитель. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
SABROG кавычки ставятся только если есть пробелы в строке (обрати внимание).
Например: ------------------------- Привет. Как дела? Пока. ------------------------- будет записано как: Привет.|"Как дела?"|Пока А если так: ------------------------- Привет. Какдела? Пока. ------------------------- то будет записано как: Привет.|Какдела?|Пока Это сообщение отредактировал(а) artsb - 12.12.2007, 15:26 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Отсутствие кавычек никак не влияет на работу
![]() В общем, если символ разделителя или пробелы появляются в строке, то она экранируется кавычками. Это сообщение отредактировал(а) SABROG - 13.12.2007, 14:30 |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Теперь всё норамально. Спасибо.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |