![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 644
|
![]()
Вопрос такой вот: если я меняю местами две строки - то в памяти происходит перемещение двух строк, или просто меняются местами значения ссылок, а сами строки никуда не перемещаются?
Тот же вопрос касательно того, когда в середину TStrings вставляется новая строка: данные строк, которые после перемещаются, или двигаются только ссылки? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Это легко выяснить. Попробуйте получить указатель на первый символ строки (привести ее к PChar), а дальше сравните значения указателей до и после.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 644
|
![]()
Просто вопрос, как лучше делать большую перетасовку строк: делать временный стринглист, заполнить его в нужном порядке и потом присвоить его строки исходному мемо, или прямо в мемо все перемещать?
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Сразу в Memo
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 644
|
![]()
Чтобы не создавать новую тему: а как получить ссылку на строку из TStrings
То есть, чтобы обращаться к какой-то конкретной строке из листа по ссылке как обычной строке |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Код:
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 644
|
![]()
Я имею в виду
Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
А PChar вам на что? Просто работа с объектами string уже предполагает работу со ссылками на нее. Копирования происходят только в случаях попыток изменения строки (операции + или явный вызов copy или delete).
|
![]() |
![]() |
![]() |
#9 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,888
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
![]()
Если вам интересно разобраться как работают строки, то вот рекомендую к чтению:
1 https://www.transl-gunsmoker.ru/2009/09/pchars.html 2 https://www.gunsmoker.ru/2018/02/pchars.html |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Опишите пожалуйста принцип кода и как он работает | Supeeg | Общие вопросы C/C++ | 1 | 26.01.2021 02:51 |
Копирование, перемещение и вставка файлов | Артём14 | Lazarus, Free Pascal, CodeTyphon | 1 | 23.02.2017 22:03 |
[Си]: Вставка столбца в двумерный массив. Не работает код. | moksim | Помощь студентам | 2 | 14.12.2016 20:15 |
Не так работает в 2007 копирование-вставка? | gregory1b | Microsoft Office Excel | 2 | 20.03.2011 16:57 |