Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2014, 13:25   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию Move в XE5, бред или реальность?

Решил заюзать move в xe5,
Код:
var
  source, dest : string;
begin
  // Присвоение нашей первоначальной строки
  source := '123456789';
  dest   := '---------';

  // Копирование подстроки из источника в середину приёмника
  Move(source[5], dest[3], 4);

  // Показ строк источника и приёмника
  ShowMessage('Источник = '+source);
  ShowMessage('Приёмник = '+dest);
end;
Какой должен быть ответ:
Код:
Источник = 123456789
Приёмник = --5678---
А получаю
Код:
Источник = 123456789
Приёмник = --56-----
Изменив кол-во символов которые перемещаются на 8 я получил перемещение на 4 символа, почему так работает на xe5 не кто не вкурсе?
Один символ считается как за два.
Winexcel вне форума Ответить с цитированием
Старый 06.07.2014, 13:52   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

юникод ?
eval вне форума Ответить с цитированием
Старый 06.07.2014, 15:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
юникод ?
Скорее всего.
Цитата:
Winexcel
или Move(source[5], dest[3], 8); или попробуй ansistring;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2014, 15:59   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Почему нельзя использовать insert и наконец почему нельзя использовать TStringHelper?
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2014, 16:38   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Move copies Count bytes from Source to Dest. No range checking is performed. Move compensates for overlaps between the source and destination blocks
количество байтов
Цитата:
Почему нельзя использовать insert и наконец почему нельзя использовать TStringHelper?
Можно, а почему move нельзя?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.07.2014, 17:04   #6
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
...Можно, а почему move нельзя?
Можно обозвать это "bad practice". Бегло глянуть на тему immutable и менеджера памяти: http://www.gunsmoker.ru/2013/05/modern-delphi.html
StriderX вне форума Ответить с цитированием
Старый 06.07.2014, 17:40   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Можно, а почему move нельзя?
А зачем? Move как часть RTL успешно работает где-то в низах. Зачем подымать это на верх, при том непонятно как?
Уверен тот же Insert использует Move.
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2014, 17:56   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно обозвать это "bad practice".
Нда... Уж безопаснее будет работать со Stream чем с move. Не только безопаснее но и удобнее ИМХО.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Copy или Move при парсинге теста Pcrepair Общие вопросы Delphi 1 29.01.2013 15:12
MEF - миф или реальность Paleolit Общие вопросы по программированию, компьютерный форум 2 13.11.2012 20:58
Бред или все таки синтаксис? MeTeOpA Visual C++ 12 01.02.2011 15:03
Паранойя или реальность !? gefest58 Свободное общение 17 06.01.2011 18:40
Задачки или очередной бред? Stilet Свободное общение 8 23.07.2008 19:24