Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TStringList 
:(
    Опции темы
Kirgston
Дата 21.4.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Доброго времени суток! Собственно случился странный казус. Может я это... мат часть не того... но вызывая :

Код

    TStringList *tmp = new TStringList;
    tmp->Add(L"123");
    tmp->Strings[0][0] = 0;
    UnicodeString ss = tmp->Strings[0];


я получаю всё тот же 123. Вызовы тех же Delete & Insert & blablabla() бесполезны. Это из разряда "рид онли" ? Как обойти данный сарказм? =) Я конечно знаю как можно обойти... но это слишком не красиво  smile 
PM MAIL   Вверх
Kirgston
Дата 21.4.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Ошибся... оказывается  tmp->Strings[0] = L"321" работает нормально зато tmp->Strings[0].Delete(1,1); нивкакую... я дурак или как? smile 
PM MAIL   Вверх
586
Дата 21.4.2011, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



tmp->Strings[0] = tmp->Strings[0].Delete(1,1);
PM   Вверх
Kirgston
Дата 22.4.2011, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Цитата(586 @  21.4.2011,  22:18 Найти цитируемый пост)
tmp->Strings[0] = tmp->Strings[0].Delete(1,1); 

Тут будет вызван конструктор копирования. Не правда ли? А можно без него?
PM MAIL   Вверх
586
Дата 22.4.2011, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



tmp->Strings[0] возвращает копию строки, а не ссылку. Поэтому, изменение того, что возвратил tmp->Strings[0] не приведёт к изменению данных в TStringList.

Подругому никак.

Либо, вместо TStringList используй std::vector - в нём можно менять строки напрямую.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.