Delphi比较二维数组是否一样

原创 2011年01月15日 12:14:00

Delphi比较二维数组是否一样

Delphi二维数组,Delphi比较数组,Delphi比较二维数组

一句话: 用 CompareMem 对比内存即可.

{对比静态数组}

procedure TForm1.Button1Click(Sender: TObject);
var
arr1: array[0..3] of AnsiChar;
arr2: array[0..3] of Byte;
begin
arr1[0] := 'A'; arr1[1] := 'B'; arr1[2] := 'C'; arr1[3] := 'D';
arr2[0] := 65; arr2[1] := 66; arr2[2] := 67; arr2[3] := 68;

if CompareMem(@arr1, @arr2, SizeOf(arr1)) then
ShowMessage('arr1 与 arr2 中的数据相同');
end;
{对比动态数组}

procedure TForm1.Button2Click(Sender: TObject);
var
arr1: array of AnsiChar;
arr2: array of Byte;
begin
SetLength(arr1, 4);
SetLength(arr2, 4);
arr1[0] := 'A'; arr1[1] := 'B'; arr1[2] := 'C'; arr1[3] := 'D';
arr2[0] := 65; arr2[1] := 66; arr2[2] := 67; arr2[3] := 68;

if CompareMem(arr1, arr2, SizeOf(arr1)) then
ShowMessage('arr1 与 arr2 中的数据相同');
end;
{多维数组也一样}

procedure TForm1.Button3Click(Sender: TObject);
var
arr1: array[0..1, 0..1] of AnsiChar;
arr2: array[0..1, 0..1] of Byte;
begin
arr1[0,0] := 'A'; arr1[0,1] := 'B'; arr1[1,0] := 'C'; arr1[1,1] := 'D';
arr2[0,0] := 65; arr2[0,1] := 66; arr2[1,0] := 67; arr2[1,1] := 68;

if CompareMem(@arr1, @arr2, SizeOf(arr1)) then
ShowMessage('arr1 与 arr2 中的数据相同');
end;

Delphi中比较GUID是否相等

1、CompareMem(@guid1, @guid2, SizeOf(TGUID)) 最开始时想到的方法。 查看Delphi中TGUID的定义可以看到TGUID实际上是一个结构。对于结构的比较来...
  • wozengcong
  • wozengcong
  • 2015年01月23日 19:46
  • 831

Delphi Math里的基本函数,以及浮点数比较函数

Delphi里的好东西太多,多到让人觉得烦。这种感觉就是当年打游戏《英雄无敌3》,改了钱以后,有钱了每天都要造建筑,明明是好事,可是让人觉得烦。 先记录下来,以后再回来加强对Math单元的研究,不必...
  • Hmillet
  • Hmillet
  • 2017年02月06日 16:34
  • 665

Delphi开发技巧:字符串的相关判断

某一字符是否在字符串中     本实例是用AnsiMidstr()函数获取指定字符串中的单个字符,也可以获取指定长度的子字符串。运行结果如图5.10所示。 图5.10  判断某一字符是...
  • wozengcong
  • wozengcong
  • 2014年08月31日 10:29
  • 815

如何判断 变体variant/OleVariant 是否为空

value : OleVariant; value := wbCharge.OleObject.document.all.item('spwd',0);   如何判断  value ...
  • l09120204
  • l09120204
  • 2018年01月03日 17:00
  • 49

Delphi2010Ping某IP是否连通的代码实现

很多时候不检查局域网内的IP是否连通,直接通过IP访问,程序会卡住很久,有1分钟左右,这给用户的体验非常不好,现在通过检查是否连通,设置为1.5S后不连通则不进行后面的操作,程序效率大大提升,如下是检...
  • Michael__mai
  • Michael__mai
  • 2016年01月23日 16:42
  • 695

Delphi中避免使用ClassName判断对象的类型

在公司原有系统的代码中,我看到了很多判别对象的ClassName属性进行分别处理的代码。而且似乎已经是处理类似问题的标准方法。但是其中可能会隐含一些问题。 首先,我们知道多态是面向对象的三大...
  • wozengcong
  • wozengcong
  • 2013年12月19日 01:16
  • 1326

比较两个类对象是否相同

前边有写过给相同类的对象赋值,今天有研究了比较两个类对象是否相同,当然前提是两个对象属于同一个类。比较的方法都是在ClassReflection类中实现的。下面是主要代码: package com....
  • hyp1006346386
  • hyp1006346386
  • 2015年12月11日 16:40
  • 645

用Delphi开发DirectX控件

http://blog.csdn.net/xiaodong/article/details/3004 2000-09-02 00:22 2058人阅读 评论(0) 收藏 举报 ...
  • y13156556538
  • y13156556538
  • 2016年08月20日 18:20
  • 536

比较两个List是否相等(相同元素)

我们看看如何比较两个数组相等。数组是一个连续的内存空间,所以一般来说,两个数组相等,就是意味着他们有相同的长度,相同的元素,以及相同的顺序。我们看看JDK的Arrays.equals()实现就一目了然...
  • tiwerbao
  • tiwerbao
  • 2015年01月18日 16:21
  • 5816

判断ShellExecute函数是否执行完一个程序的方法

ShellExecute是windows的API函数,功能是执行可执行文件(exe)或任何关联文件(doc、txt、xls等)。但ShellExecute是异步执行的,也就是说,不管执行的程序是否成功...
  • u011429664
  • u011429664
  • 2013年09月09日 15:16
  • 1010
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi比较二维数组是否一样
举报原因:
原因补充:

(最多只允许输入30个字)