Что делает функция move?

_konstantine_

есть функция Move(P[i + 1], Suffix[2], lp - i ); что она делает?
18 ответов

_konstantine_

неужто копирует?


_konstantine_

Неужто справку забанили?


_konstantine_

Клавишу F1 вырвал и выкинул


_konstantine_

А функция какого модуля или класса?


_konstantine_

OFFкстати, на мой взгляд имя процедуры Move неудачное, как и у Copy. Оба не отражают то, что в действительности делают.нужно было Copy назвать SubStr, a Move, в свою очередь, Copy.


_konstantine_

OFFкстати, на мой взгляд имя процедуры Move неудачное, как и у Copy. Оба не отражают то, что в действительности делают.нужно было Copy назвать SubStr, a Move, в свою очередь, Copy.
Это мода взята из штатного winapi, где есть две функции: MoveMemory и CopyMemory (отличия у которых только в том, что первая держит "overlapped blocks"), т.е. поведение заимствованно.


_konstantine_

неужто копирует?
Copy - копирует, а Move - мовит


_konstantine_

Anatoly Podgoretsky, если она мовит... то я тогда "программист со стражем", а не токарь ))


_konstantine_

ps: Возможно, что она на українськой мове только мовит... но тут нужны тесты


_konstantine_

Это мода взята из штатного winapi, где есть две функции: MoveMemory и CopyMemory (отличия у которых только в том, что первая держит "overlapped blocks"), т.е. поведение заимствованно.
Исторически скорее наоборот получается. Winapi был еще в эмбриональном состоянии, когда в Паскале появились copy и move


_konstantine_

ДжекНепотрошитель, да... оплошал я тут... значит это придумали враги в глубине веков


_konstantine_

Anatoly Podgoretsky, если она мовит... то я тогда "программист со стражем", а не токарь ))
А ты подумай как можно переместить, а на освободившемся место то что, ничего, совсем-совсем или все таки старые данные?Две функции появились из-за ошибки в первой. И чтобы не называть NewRepairCopy придумали назвать это перемещением.


_konstantine_

Anatoly Podgoretsky, я давно уже подумал )


_konstantine_

по сабжу, для ТС
<pre class="prettyprint linenums">var source, dest : string; begin <i>// Присвоение нашей первоначальной строки</i> source := '123456789'; dest := '---------'; <i>// Копирование подстроки из источника в середину приёмника</i> Move(source[5], dest[3], 4); <i>// Показ строк источника и приёмника</i> ShowMessage('Источник = '+source); ShowMessage('Приёмник = '+dest); end; </pre>Источник = 123456789Приёмник = --5678---
______________________________________________________________"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".


_konstantine_

Это мода взята из штатного winapi, где есть две функции: MoveMemory и CopyMemory
Сколь мне помнится, подпрограмма Move появилась куда раньше, чем WinAPI Чтобы говорить о "моде", стоило бы сослаться на функции memcpy/memmove.


_konstantine_

afaiu, если copy копирует, то move мовирует... или если move мувит (мовит), то copy копитРазве в x86 есть команда копирования области памяти из одного места в другое? Как в S360/370?


_konstantine_

Разве в x86 есть команда копирования области памяти из одного места в другое? Как в S360/370?
Есть. И называется MOVS. Для этой инструкции даже два спциальных регистра выделены.


_konstantine_

Dimitry Sibiryakov, Во! Целых два регистра! Эх, надо Райкова достать (вроде там была MOV без регистров - или с одним (где размер)) и x86 посмотреть