Что делает функция 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_

по сабжу, для ТС
<b>var</b>
 source, dest : <b>string</b>;
<b>begin</b>
 <i>// Присвоение нашей первоначальной строки</i>
 source := '123456789';
 dest := '---------';

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

 <i>// Показ строк источника и приёмника</i>
 ShowMessage('Источник = '+source);
 ShowMessage('Приёмник = '+dest);
<b>end</b>;
Источник = 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 посмотреть