COPYMEMORY 实现 N维数组向M维数组的转化
2006-04-24 09:09
399 查看
'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():
31 125 7 49 46 62 19 60
32 80 69 20 120 83 64 49
13 100 58 96 76 106 2 26
9 13 42 16 0 68 84 69
105 10 24 86 58 45 19 90
118 67 11 96 51 59 62 26
array b():
31 24 106
32 11 68
13 49 45
9 20 59
105 96 19
118 16 64
125 86 2
80 96 84
100 46 19
13 120 62
10 76 60
67 0 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():
31 7 46 19
9 42 0 84
125 49 62 60
13 16 68 69
---------------------------
32 69 120 64
105 24 58 19
80 20 83 49
10 86 45 90
---------------------------
13 58 76 2
118 11 51 62
100 96 106 26
67 96 59 26
---------------------------
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():
31 125 7 49 46 62 19 60
32 80 69 20 120 83 64 49
13 100 58 96 76 106 2 26
9 13 42 16 0 68 84 69
105 10 24 86 58 45 19 90
118 67 11 96 51 59 62 26
array b():
31 24 106
32 11 68
13 49 45
9 20 59
105 96 19
118 16 64
125 86 2
80 96 84
100 46 19
13 120 62
10 76 60
67 0 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():
31 7 46 19
9 42 0 84
125 49 62 60
13 16 68 69
---------------------------
32 69 120 64
105 24 58 19
80 20 83 49
10 86 45 90
---------------------------
13 58 76 2
118 11 51 62
100 96 106 26
67 96 59 26
---------------------------
相关文章推荐
- COPYMEMORY 实现 N维数组向M维数组的转化
- JS解析json数据并将json字符串转化为数组的实现方法
- Java之数组实现进制转化
- (第二周实验报告1-2)运用数组实现十进制转化为二进制
- 程序目的:实现c++整型和字符数组,字符串的相互转化
- JS解析json数据并将json字符串转化为数组的实现方法
- JS中实现字符串和数组的相互转化
- 数组转化为二叉树并实现对其遍历
- js中实现字符串和数组的相互转化详解
- 实现多维数组转化为一维数组
- n维数组实现(可变参数表的使用)
- 将浮点型数据转化为人民币读法字符串的方法(数组实现)
- java实现列表、集合与数组之间转化的方法
- php实现数组转化成xml的类
- PHP函数实现对象与数组的相互转化
- JS中实现字符串和数组的相互转化
- C语言编程实现,浮点型与字符数组相互转化
- php一维数组转化二维数组实现数组键值替换及转化json乱码
- java中实现数组转化为字符串
- JS中实现字符串和数组的相互转化