请问VB中如何把一个数组直接赋给另一个数组?
比如 dim A() as integer, B() as integer
当A有了值后,怎么才能把A直接赋给B呢 ,我不想一个一个的循环赋值
另外还想问一下是否可以把一个记录集直接赋给另一个记录集?
dim RS1 AS new adodb.recordset
dim RS2 AS new adodb.recordset
可以直接 rs1=rs2吗?
[解决办法]
数组应该可以用复制内存的方法.
而类(对象)应该不可以.
类(对象)名保存的好象是 指针之类的东西. 指向某个实类或对象.
直接赋值无用,在操作的时候,二个类或对象数据都会改变.
[解决办法]
不行,你这只是把rs1指向rs2
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
[解决办法]
顶一楼
[解决办法]
b是动态数组直接:
b=a
set rs2=rs1
[解决办法]
补充一下,set rs2=rs1这样,注意对rs1的操作可能会影响到rs2...
[解决办法]
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, source As Any, ByVal numBytes As Long)Private Sub Command1_Click() Dim a(2) As Integer, b(2) As Integer a(0) = 1 a(1) = 2 a(2) = 3 CopyMemory ByVal VarPtr(b(0)), ByVal VarPtr(a(0)), 6 For i = 0 To 2 MsgBox b(i) NextEnd Sub
[解决办法]
'可以将数组赋给一个包含数组的VariantPrivate Sub Form_Load()Dim a(2) As IntegerDim b As VariantDim i a(0) = 1 a(1) = 2 a(2) = 3 b = a 'b是一个包含数组的Variant For i = 0 To UBound(b) MsgBox b(i) Next End Sub
[解决办法]
CopyMemory是高效的方法,但对于不大的数组b=a更合适...
对于记录集,你还可以用clone方法复制副本:
set rs2=rs.clone
然后执行:
rs1.requery
这样rs1和rs2就脱离关联了...
[解决办法]
bytes = (UBound(intSrc) - LBound(intSrc) + 1) * Len(intSrc(LBound(intSrc)))
CopyMemory intDest(LBound(intDest)), intSrc(LBound(intSrc)), bytes
End Sub
[解决办法]