vb一维数组怎么转换成二维数组??

ediex 2006-12-12 01:46:21
已知一维数组adcdatarray,每12个数字放到二维数组adata(i+12,j)一行中,怎么解决?
...全文
502 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dunzip 2006-12-12
  • 打赏
  • 举报
回复
理论上用CopyMemory要快些,但没有去测试。一测便知。

ediex 2006-12-12
  • 打赏
  • 举报
回复
到底那个更快,我的数组 数据量比较大
gguueesstt 2006-12-12
  • 打赏
  • 举报
回复

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)


Private Sub Form_Load()
Dim m As Long
Dim adcdatarray(1 To 12 * 6) As Long

For m = 1 To UBound(adcdatarray)
adcdatarray(m) = m
Next m

Dim adata(1 To 12, 1 To 6) As Long
CopyMemory adata(1, 1), adcdatarray(1), UBound(adcdatarray) * Len(adcdatarray(1))
Debug.Print adata(1, 1), adata(2, 1)
Debug.Print adata(1, 2), adata(2, 2)
End Sub
tmd007 2006-12-12
  • 打赏
  • 举报
回复
Dim adcdatarray(20), adata(12, 10)
Private Sub Command1_Click()
Dim i, j
For i = 0 To 20: adcdatarray(i) = i: Next
For i = 0 To UBound(adcdatarray) Step 12
For j = 0 To 11
If j + i > UBound(adcdatarray) Then Exit For
adata(j, i \ 12) = adcdatarray(j + i)
Next
Next
For i = 0 To UBound(adcdatarray) \ 12
For j = 0 To 11
Print adata(j, i);
Next: Print
Next
End Sub
建立运行环境-Excel Vba,可移植到VB环境中(需修改一些代码) '仿制简单的SQL查询语句,用于对二维数组的查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = < >= <= <> , like(正则表达式) ' '附注: ' 使用此函数,需要在文件中引用正则表达式脚本 Microsoft VBScript Regular Expressions x.x ' (根据不同的电脑配置和环境此处会有差异) '算法简要: ' 1、查询条件运算符:仅有 >, =, <, >=, <=, <> , like(正则表达式) ' 本函数中仅有上述运算符。原因在于,更多的运算符编制逻辑过于复杂,又不太常用。 ' 为了尽可能多地容纳各种运算关系,添加了正则表达式匹配运算, ' 在某个单一条件中,正则几乎可以容纳绝大部分的比对运算关系了。 ' 2、数字比较: ' 采用了将数字型字符串类型转换为数字之后再比较的方法,结果更为准确。 ' 3、其他算法和运算速度: ' 编制过程中,试验过使用 正则+逻辑分支+表达式引用 的方法, ' 可以实现几乎等同于SQL查询语句的复杂功能,而且代码更简捷。 ' 但运算速度相差过于悬殊(大概几十到上百倍 - "一闪而过"和"一袋烟"的差距!),最后不得不放弃。 ' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧