Показать сообщение отдельно
  #9  
Старый 14.11.2014, 13:36
Аватар для madMonia
madMonia madMonia вне форума
Новичок
 
Регистрация: 25.02.2014
Сообщения: 50
Версия Delphi: Delphi XE3
Репутация: 2545
По умолчанию

Цитата:
Сообщение от NoSilence
А я предполагал, что есть какой-то профит в быстродействии. Не всегда ведь строчка из 10 символов.
Профит есть, но незначительный, лучше на него не полагатся.


Цитата:
Сообщение от NoSilence
Если я просто укажу теперь ссылку на символ "3", то что произойдет с "12"?
Если вы просто переназначите Pchar с ячейки, содержащей "1", на ячейку, содержащую "3", то ячейки "1" и "2" останутся в памяти, пока строка не уничтожится. Далее все зависит от как строка создавалась и очищается.

Цитата:
Сообщение от NoSilence
Или же скопирую память Move'ом в позицию "1", то что с "9"?
Если вы скопируете Move'ом, то у вас получится строка "345678989"

Чтобы изменить длину строки вам нужно создать другую строку, в нее скопировать нужное содержимое из исходной, и почистить старую строку. Это если вы работаете через PChar и GetMem. Если вы используете String то можно просто SetLength обойтись
__________________
Невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров
Ответить с цитированием