delphi 数组复制利用CopyMemory 最为完美

在各网站的文章里面,见复制数据的方法中,有move的,有system.copy的,而要实际应用中,这两种方法,并不是很完美,会遇到一些问题,比如copy在记录里面的复制时,编译都过不去,而CopyMemory的功能,就相当强大.

要注意如果不是byte时,长度可能需要使用sizeof来参与计算

Buff,BuffCmdCrc16:array of Byte

SetLength(BuffCmdCrc16, 10);

一、复制10个byte

CopyMemory(@BuffCmdCrc16[0],@Buff[0],10);

从第11个 byte位追加,取数从第5个起,取8个byte 的长度。

CopyMemory(@BuffCmdCrc16[10],@Buff[5],8);

定义在Winapi.Windows中:

procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: NativeUInt);
begin
Move(Source^, Destination^, Length);
end;

从定义看,也是调用了move,但是直接用move,可没这么顺心顺手

原文地址:https://www.cnblogs.com/marklove/p/9206768.html

时间: 2024-10-16 11:35:55

delphi 数组复制利用CopyMemory 最为完美的相关文章

利用concat进行数组复制

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组复制</title> </head> <body> <script type="text/javascript"> var arr1 = [1,3,5,6,7]; var arr2 = arr1.c

约瑟夫问题 算法很简单保证每隔人都能看懂用数组实现 利用循环删除数组中的元素

#include<iostream> using namespace std; const int size = 1000; void ArrDel() { int arr[size]; //循环结束标志,一直循环到数组中只剩下最后一个元素结束 int currentNum = size; int count = 0; for (int k = 0; k < size; k++) { arr[k] = k; } //currentNum==1表示数组中只剩下最后一个元素 是循环结束的标志

关于DELPHI数组,指针,字符串转换的例子!(转)

var   aa:   array [0..5] of Char;   bb:Pointer;   cc:string;   dd:PChar; procedure TForm1.Button1Click(Sender: TObject);begin dd:='abcdef'; //以下是pchar内容转数组FillChar(aa,length(dd),#0);Move(dd^,aa,SizeOf(aa)); //以下是数组传递到指针bb:=GetMemory(SizeOf(aa));Move(

java数组复制的几种常见用法

1.1数组复制的几种常见用法 1.1.1System.arraycopy的用法 int[] src = {1,3,5,7,9,11,13,15,17}; int[] dest = {2,4,6,8,10,12,14,16,18,20}; //从src中的第一个元素起复制三个元素,即1,3,5复盖到dest第2个元素开始的三个元素 System.arraycopy(src, 0, dest, 1, 3); System.out.println(Arrays.toString(dest)); 结果为

C语言 二维数组复制、清零及打印显示

#include <stdlib.h> #include <stdio.h> #include <string.h> //二维整型数组打印显示 void printarr2d(int (*a)[3],int row,int col) { int i,j; for(i=0; i<row; i++) { for(j=0; j<col; j++) { printf("%d ", a[i][j]); } printf("\n"

js 数组复制问题

师兄面试回来问个问题,js中数组怎么复制,工作中没遇到,面试也涨见识 了,他给我说了下,太晚没留心,打早起来研究下,写个dom,来看下 代码如下 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组复制</title> </head> <script> var arr1=[1,2,

delphi 数组类型

数组类型 数组类型定义了一组指定类型的元素序列,在方括号中填入下标值就可访问数组中的元素.定义数组时,方括号也用来指定可能的下标值.例如,下面的代码中定义了一个有 24 个整数的数组: type    DayTemperatures = array [1..24] of Integer; 在数组定义时,你需要在方括号中填入一个子界类型的值,或者用两个有序类型的常量定义一个新的子界类型,子界类型指定了数组的有效索引.由于子界类型指定了数组下标值的上界和下界,那么下标就不必象 C.C++.JAVA

C语言入门基础之数组——数学和编程的完美结合(图)

C语言入门基础之数组--数学和编程的完美结合(图)姐姐又来更新了,刚刚过完周末,是不是玩的很开心啊,放松后我们来学习新知识吧!现在我们要讲数组啦,编程往往和数学紧密联系着,想必在我们高中有学习过集合吧.那么在编程中我们怎么表示集合呢?刚学编程的小可爱可能学到变量时候发现,如果我需要用很多变量存储同意作用的值,需要大量的变量.现在让小姐姐给你介绍下二维数组吧,小可爱可要认真学了哦!记得给小姐姐点赞,?( ′???` )比心大家都玩抖音吧,我们每个人都有一个抖音号,我们还会关注一些小姐姐的抖音号,那

delphi数组如何初始化

https://wenda.so.com/q/1535561587217078delphi数组如何初始化rosegirl09112级分类:其他被浏览44次2018.07.01检举满意答案 csx3308362采纳率:42%9级 2018.07.02vari : integer;arr1 : array[0..9] of integer;arr2 : array[0..9] of char;begin//如果是初始化是给每个元素相同的初值,可以用Fillchar这个函数来fillchar(arr1