0

How can I pass the data of an Array to another Array using VB6?

Mark Bertenshaw
  • 5,594
  • 2
  • 27
  • 40
user3391894
  • 9
  • 1
  • 1
  • 16
  • You want to copy the array? – Blorgbeard Apr 07 '14 at 04:23
  • yes, because I have a computation in my program I should retain the data of current time that's why I needed it. `Array2 - Array1` then after the computation I will pass the data of `Array2` to `Array1` so that the `Array1` must have already a value and the `Array2` must be empty – user3391894 Apr 07 '14 at 04:28

3 Answers3

5

In VB6, array is copied on a simple assignment.

Dim arr1() As Long
Dim arr2() As Long

ReDim arr1(1 To 10)
'Fill arr1 with data

arr2 = arr1
GSerg
  • 76,472
  • 17
  • 159
  • 346
  • I think this only works if its dynamic but its definitely the simplest way. –  Apr 07 '14 at 10:21
  • +1 Just for fun: you can also use API calls but its much much harder http://www.xbeat.net/vbspeed/c_SliceLng.htm – MarkJ Apr 07 '14 at 18:52
  • @MarkJ When it comes to fun, it is more fun to create [linked subarrays](http://stackoverflow.com/q/11713408/11683) ;) – GSerg Apr 07 '14 at 19:56
0

Try this:

        Dim lArray1(3) As Long
        Dim lArray2(3) As Long
        Dim count As Long

        lArray1(0) = 1
        lArray1(1) = 2
        lArray1(2) = 3

        lArray2(0) = 10
        lArray2(1) = 20
        lArray2(2) = 30

        For count = LBound(lArray1) To UBound(lArray1)
            lArray2(count) = lArray1(count)
        Next count

        Erase lArray2

if its not fixed length you will need to use redim in the loop.

0

I have already answered my questions :) Thank you guys for the help but this is what I did.

'Delete items in Array first
            For lngIndex = 0 To UBound(time2) - 1
                time2(lngIndex) = time2(lngIndex + 1)
            Next
'Next thing is
'Insert items in Array
            For lngIndex = UBound(time1) - 1 To 0 Step -1
                time1(lngIndex + 1) = time2(lngIndex)
            Next

This code solve my problem :)

user3391894
  • 9
  • 1
  • 1
  • 16