img
00:00
imgDRKB online - Быстрый способ обмена значений в 2х переменных.
imgimgimg
  Общие вопросы
  Delphi IDE, компиллятор, отладчик, редактор
  Язык программирования Дельфи
  Общие вопросы
  Объектное ориентирование
  Работа со строками
  Работа с датами и временем
  Работа с числами
  Работа с битами
  Работа с массивами
  Работа с указателями, память
  Множества, записи и перечисляемые типы
  RTTI и другие трюки с информацией о классах, модулях и т.п.
  Взаимодействие с другими языками
  Threads
  Работа с коллекциями
  RTL Delphi (краткий справочник)
  Базовые классы
  Скрипты, компилляторы и связанные с ними вопросы
  Лекции по построению компилятора на Pascal
  Расчет введенной формулы
  Использование Microsoft ScriptControl (статья)
  Вокруг и около Паскаля или другие компилляторы Дельфи/Паскаль
  VCL
  Системные функции и WinAPI
  Базы данных
  Работа с файловой системой
  Репортинг, работа с принтером
  Работа с сетью, интернетом, протоколами
  Работа с графикой и мультимедиа
  Математика, алгоритмы
  Форматы файлов, данных. Конвертация форматов
  ActiveX, COM, DCOM, MIDAS, CORBA, интерфейсы, OLE, DDE
  Разработка приложений
  Kylix
  Delphi.Net
  Развлечения
  
  [drkb=67] Комментариев: 3
Быстрый способ обмена значений в 2х переменных.


delphi
procedure SwapVars1(var u, v; Size: Integer);
var
  x: Pointer;
begin
  GetMem(x, Size);
  try
    System.move(u, x^, Size);
    System.move(v, u, Size);
    System.move(x^, v, Size);
  finally
    FreeMem(x);
  end;
end;


procedure SwapVars2(var Source, Dest; Size: Integer);
  // By Mike Heydon, mheydon@eoh.co.za
begin
  asm
     push edi
     push esi
     mov esi,Source
     mov edi,Dest
     mov ecx,Size
     cld
@1:
     mov al,[edi]
     xchg [esi],al
     inc si
     stosb
     loop @1
     pop esi
     pop edi
  
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SwapVars1(X1, X2, SizeOf(Integer));
end;





@Drkb::00074
Взято с сайта http://www.swissdelph...ndex.php

delphi
var
X1, X2: Byte;
begin
X1 := X2 xor X2;  
X2 := X1 xor X2; // X2 = X1
X1 := X1 xor X2; // X1 = X2



Автор ___ALex___
http://forum.pascal.dax.ru

@Drkb::00075
Количество статей: 4366
 
Вход
Имя:
Пароль:
Запомнить
Регистрация Забыли пароль?
Мини-чат :)
Необходима регистрация
Архив мини-чата
11-10-2019 10:05
Programmer
А может быть он просто тоже сидит в десксофте
10-10-2019 10:44
antonn
Есть французская певица "Kareen Antonn", может ее трек скачал smiley
09-10-2019 03:46
Bact
У моего брата в загрузках есть файл с именем antonn, может ли быть это совпадением?
09-10-2019 03:37
Bact
есть кто? :0
03-10-2019 14:20
antonn
Примерно как гостевую книгу, только рисуется на всех страницах.
02-10-2019 19:09
Programmer
антонн, как ты сделал чат?
02-10-2019 19:09
Programmer
есть
15-09-2019 18:55
Expendobrooo
Есть кто живой?
15-09-2019 17:36
Programmer
сайт сдох smiley
29-08-2019 22:11
Zoom
ПРивет Привет
Статистика
 СегодняВсего
Посетителей2582107489
Запросов10729323745013
Online
Пользователей0
Гостей11
imgimgimgimg
 
img
     00:00