|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.10.2022, 10:53 | #1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Принцип TStrings и как работает вставка/перемещение
Вопрос такой вот: если я меняю местами две строки - то в памяти происходит перемещение двух строк, или просто меняются местами значения ссылок, а сами строки никуда не перемещаются?
Тот же вопрос касательно того, когда в середину TStrings вставляется новая строка: данные строк, которые после перемещаются, или двигаются только ссылки? |
13.10.2022, 19:33 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Это легко выяснить. Попробуйте получить указатель на первый символ строки (привести ее к PChar), а дальше сравните значения указателей до и после.
|
14.10.2022, 12:12 | #3 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Просто вопрос, как лучше делать большую перетасовку строк: делать временный стринглист, заполнить его в нужном порядке и потом присвоить его строки исходному мемо, или прямо в мемо все перемещать?
|
14.10.2022, 14:12 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Сразу в Memo
|
14.10.2022, 16:24 | #5 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Чтобы не создавать новую тему: а как получить ссылку на строку из TStrings
То есть, чтобы обращаться к какой-то конкретной строке из листа по ссылке как обычной строке |
14.10.2022, 16:41 | #6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Код:
|
14.10.2022, 19:17 | #7 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Я имею в виду
Код:
Код:
|
14.10.2022, 19:24 | #8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
А PChar вам на что? Просто работа с объектами string уже предполагает работу со ссылками на нее. Копирования происходят только в случаях попыток изменения строки (операции + или явный вызов copy или delete).
|
15.10.2022, 01:19 | #9 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
17.10.2022, 12:46 | #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 |