Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Ampliar array para server TCP (http://www.forosdelweb.com/f69/ampliar-array-para-server-tcp-575748/)

occam25 14/04/2008 05:34

Ampliar array para server TCP
 
Hola, estoy programando un server que recibe la información que le envía un dispositivo. Hasta ahora tenía un array donde almacenaba lo que recibía en la funcion DataArrival del winsock.

Ahora he ampliado la cantidad de datos que envía el dispositivo y no me llega todo de una vez, por lo que tengo que ir añadiendo lo que recibo a mi array BufferServer.

¿Cómo se amplia un array? si fuera de tipo string lo haría asi:

Código:

Server(index).GetData BufferTemporal  ' Almaceno lo que recibo en BufferTemporal
BufferServer = BufferServer + BufferTemporal  ' Y lo añado a BufferServer

Pero al ser array (lo he definido como variant) no lo puedo hacer asi.

Vale, para explicarme mejor:

Si tengo un array A = {1,2,3,4} y un array B = {5,6,7,8}, ¿cómo puedo hacer para añadir B a A?
para tener A = {1,2,3,4,5,6,7,8}


gracias por vuestra infinita sabiduria.. : )

tsunamijavip 14/04/2008 08:47

Re: Ampliar array para server TCP
 
Lo primero es redimensionarlo. Esto lo puedes hacer de esta forma:

redim preserve A (A.lenght+B.lenght)

De esta forma ya tienes un array de 8 posiciones.

Luego con un bucle for nada mas que añades a partir de la ultima posicion.

Creo que existe un metodo para concatenar los arrays, si quieres te lo miro y lo posteo.

occam25 15/04/2008 00:18

Re: Ampliar array para server TCP
 
Gracias Tsuna, si encuentras ese metodo postealo q me vendría bien. : )

Salu2

occam25 15/04/2008 05:09

Re: Ampliar array para server TCP
 
He hecho un ejemplo muy simple y funciona bien, lo pongo por si a alguien le puede servir. A seguir bien!

Código:

Option Explicit

Dim a(), b(), c() As Integer

Private Sub Command1_Click()

    Dim i, tamaño, j As Integer
    tamaño = UBound(a)
    j = 0
    ReDim Preserve a(UBound(a) + UBound(b))

    For i = tamaño + 1 To UBound(a)
        a(i) = b(j)
        j = j + 1
    Next
End Sub

Private Sub Form_Load()

    Dim i As Integer

    ReDim Preserve a(205)
    ReDim Preserve b(199)

    For i = 0 To 205
        a(i) = i + 1
    Next

    For i = 206 To 405
        b(i - 206) = i + 1
    Next

End Sub



La zona horaria es GMT -6. Ahora son las 22:58.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.