`
ihuashao
  • 浏览: 4547166 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

COPYMEMORY 实现 N维数组向M维数组的转化

阅读更多

'copymemory可以实现不同维数数组间的转换,如:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Dim a(5, 7) As Byte, b(15, 2) As Byte, c(47) As Byte, d(2, 3, 3) As Byte '定义48个元素的四个数组用于测试
Sub xxxx()
Dim i As Integer, j As Integer, k As Integer For i = 0 To 5 '随机定义数组a
For j = 0 To 7
a(i, j) = Int(Rnd * 128)
Next
Next Debug.Print "array a():" '数组a( 6 行8 列)
For i = 0 To 5
For j = 0 To 7
Debug.Print Right(Space(5) & a(i, j), 5);
Next
Debug.Print
Next
Debug.Print Debug.Print "array b():" '数组b( 16 行 3 列)
CopyMemory b(0, 0), a(0, 0), 48
For i = 0 To 15
For j = 0 To 2
Debug.Print Right(Space(5) & b(i, j), 5);
Next
Debug.Print
Next
Debug.Print
Debug.Print "array c():" '数组c( 48 行 1 列)
CopyMemory c(0), b(0, 0), 48
For i = 0 To 47
Debug.Print Right(Space(5) & c(i), 5)
Next
Debug.Print Debug.Print "array d():" '数组d( 3 行 4 列 4 层)
CopyMemory d(0, 0, 0), c(0), 48
For i = 0 To 2
For j = 0 To 3
For k = 0 To 3
Debug.Print Right(Space(5) & d(i, j, k), 5);
Next
Debug.Print
Next
Debug.Print "---------------------------"
Next
End Sub

返回:

array a():
311257 49 46 62 19 60
32 80 69 20120 83 64 49
13100 58 96 761062 26
9 13 42 160 68 84 69
105 10 24 86 58 45 19 90
118 67 11 96 51 59 62 26 array b():
31 24106
32 11 68
13 49 45
9 20 59
105 96 19
118 16 64
125 862
80 96 84
100 46 19
13120 62
10 76 60
670 49
7 58 26
69 51 69
58 62 90
42 83 26 array c():
31
32
13
9
105
118
125
80
100
13
10
67
7
69
58
42
24
11
49
20
96
16
86
96
46
120
76
0
58
51
62
83
106
68
45
59
19
64
2
84
19
62
60
49
26
69
90
26 array d():
317 46 19
9 420 84
125 49 62 60
13 16 68 69
---------------------------
32 69120 64
105 24 58 19
80 20 83 49
10 86 45 90
---------------------------
13 58 762
118 11 51 62
100 96106 26
67 96 59 26
---------------------------
分享到:
评论

相关推荐

    VB 数组的复制实例

    VB 数组的复制实例 VB 数组的复制实例

    易语言数组保存与恢复

    易语言数组保存与恢复源码,数组保存与恢复,数组到字节集,字节集到数组,CopyMemory

    易语言结构数组内存操作

    易语言结构数组内存操作源码,结构数组内存操作,取结构长度,取文本地址_2,CopyMemory,取文本地址_,取字节长度,取内存变量地址,取指针,取文本地址_A

    利用CopyMemory实现IEEE754与十进制float之间的转换

    对于vb vb.net c#或者 c来说,单精度浮点数在内存中占用4个字节,...这里利用了API函数CopyMemory和varPtr函数,在VB中对IEEE754和single之间进行转换。也可以用于vb.net等其他语言。对于做modbus通讯的朋友会有帮助。

    在VB6中用CopyMemory

    在VB6中用CopyMemory拷贝字符串的种种猫腻

    展示CopyMemory

    本例程向你展示CopyMemory是如何简单

    超强实现VB指针.rar

    VB实现指针一直是件头疼的事,本资源使用数组原理超强实现VB指针,完全不使用CopyMemory等API函数。定义指针,指向某个地址后即可完全实现C/C++中指针的速度(引用中缺少的文件直接去除即可)。

    易语言取汉字笔画模块

    易语言取汉字笔画模块源码,取汉字笔画模块,彗星构建字符数组,彗星取汉字笔画,彗星取汉字首笔画,取汉字笔画_起始位置,A2W,W2A,MultiByteToWideChar,WideCharToMultiByte,CopyMemory_Int,CopyMemory_Byte,CopyMemory_...

    【源码】VB6中高效的内存访问API

    介绍几个VB6中高效的内存访问API,与常用的API函数Copymemory的速度比较。相关帖子:http://bbs.csdn.net/topics/392207309

    VB指针葵花宝典之函数指针的配套代码。

    这是因为qsort的实现上比shellsort复杂,在C里多几次比较、多几次无用的移动影响不大,但在VB里多用一次API回调的Compare、多用一次CopyMemory都是很大的开销。而且qsort要嵌套调用(不嵌套在VB里也慢),我们还要...

    取系统进程列表叮咚茶

    取系统进程列表_,NtQuerySystemInformation,LocalAlloc,CopyMemory_SYSTEM_PROCESSES,LocalFree,WToM,LocalSize,取系统进程_

    易语言八种方法实现文本倒转

    易语言八种方法实现文本倒转源码,八种方法实现文本倒转,生成文本,API_CopyMemory

    易语言姓名测试

    易语言姓名测试源码,姓名测试,取笔画,初始化数组,取汉字笔画,清除笔画数组,CopyMemory,lstrlen,方式一,方式二,方式三,笔画

    VB 做的相册(缩略图预览程序)

     函数原型:VOID CopyMemory(PVOID Destination,CONST VOID *Source,DWORD Length);  参数:  Destination:要复制内存块的目的地址?  Source:要复制内存块的源地址?  Length:指定要复制内存块的大小,...

    易语言类的反射调用

    易语言类的反射调用源码,类的反射调用,取指针,取当前方法索引,注册方法,set,get,msgbox,test,调用子程序_数组,CopyMemory,取指针_通用型,取指针_通用型_数组,指针到字节,指针到整数,指针到短整数,调用反射函数

    Visual Basic中使用未记录函数的指针

    VB->使用VarPtr,StrPtr,ObjPtr和CopyMemory API的指针

    八种方法倒转字符串暂时

    生成文本,API_CopyMemory

    WIN下 修改,伪装进程路径。支持XP,WIN7 WIN764

    可以在XP WIN7 WIN764 WIN2003 等操作系统上成功实现修改进程路径。 已经封装成类,使用及其方便。 部分代码: 头文件: #ifndef ModifyProcessPath_h__ #define ModifyProcessPath_h__ // 结构定义 typedef ...

    VB.NET编写的压缩与解压函数

    用VB.NET编写的压缩与解压函数,此函数可对保存成二进制数据的WORD文档内容进行很大的压缩,使系统读取大容量数据的速度大大地加快。

Global site tag (gtag.js) - Google Analytics