![]() |
|
|
![]()
|
|
| artsb |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
В ini файл из структуры:
записывается информация вот так:
Считываю так:
Проблема в том, что в inf может храниться не одна строка, а несколько, и записываться та они записываются, а вот считываться все не хотят, только первая. Как быть? Это сообщение отредактировал(а) artsb - 10.12.2007, 01:07 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||||
|
|||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
ReadSectionValues ?
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
К сожалению нет, потому что ReadSectionValues читает значения параметров выбранного РАЗДЕЛА.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Юзай XML и не майся. Или разбивай Ini файл по секциям типа:
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
У меня как раз такой вид как ты привёл.
Но, если в Memo написано: ------------------------------ Привет Как дела? Что делаешь? ------------------------------ То в файл записывается: ------------------------------ [i] name=... www=... inf=Привет Как дела? Что делаешь? ------------------------------ А при считывании из inf в переменную считывается только "Привет". С XML я работать не умею. :( -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Не совсем понятно, как это ты в AnsiString хранишь несколько строк, это ведь не массив. Если имеется ввиду несколько строк, разделенных #13#10, в виде одной строки, - тогда можно попробовать сделать замену символов конца строки на свой строковый разделитель(например, таб или точку с запятой) при записи и обратной замене при считывании...
Добавлено через 1 минуту и 59 секунд ага, понял попробуй сделать как я посоветовал (замена символов между строк) -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Вот так:
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Да, тогда придется делать замену символа разделения строк. Если не ошибаюсь то в Memo используется класс TStrings, надо его привести к классу TStringList, у него должен быть метод для изменения разделителя. А потом уже в AnsiString. Обратная схема та же, сначала в AnsiString, потом TStringList, установка разделителя и уже его присваиваем Memo.
Значит пора научиться ;) |
||||
|
|||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Может будет проще изменить структуру?
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
В таком случае структура может быть такой:
Насчет TStringList. Можно установить разделитель в свойстве Delimiter, потом считать все строки через свойство DelimitedText и записать в один ключ. Это сообщение отредактировал(а) SABROG - 11.12.2007, 12:30 |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Как вариант можно можно использовать такую структуру, но мне кажется что это не удобно.
SABROG не мог бы ты дать пример кода, как реализовать через TStringList. ama_kid можешь тоже дать примерчик, по предложенному тобой способу. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
||||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
SABROG спасибо. Как работает понял. Но проблема в том, что иформация из файла копируется в вектор в inf. А у AnsiString я что-то не нашёл DelimitedText. Как быть?
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Заменить AnsiString на указатель на TStringList в структуре нельзя ?
Куда в итоге выводится inf ? Если в Memo, то строки вполне могут сидеть в AnsiString'е "до востребования". Это сообщение отредактировал(а) SABROG - 11.12.2007, 18:11 |
|||
|
||||
| artsb |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Можно конечно сделать так:
Но так в Memo будет текст мигать. И это долго, по-моему. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||
|
|||||
![]()
|
| Правила форума "С++ 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. |