Harpo   21-05-2022, 12:02
#1
Necesito mover el último elemento de un array de arrays tipo String a otra posición utilizando Insert pero me da un error de coincidencia de tipos. Ando algo perdido, he buscado información pero no encuentro nada. Sólo se me ocurre añadir un elemento vacío al final y "bajar" los elementos necesarios para dejar el hueco, pero debe de haber un método más sencillo.

El código que da error es este:

Código:
   Dim aString As New String[][]
   Dim aTemp As String[]

   aString.Push(["1", "2", "3"])
   aString.Push(["4", "5", "6"])
   aString.Push(["7", "8", "9"])
   aString.Push(["10", "11", "12"])

   aTemp = aString.Pop()
   aString.Insert(aTemp, 1)   'ERROR: No coinciden los tipos: requerido String[], obtenido String en cambio.
Se agradece cualquier ayuda.
Un saludo
Última modificación: 21-05-2022, 19:42 por Harpo.
Shordi   21-05-2022, 14:09
#2
Para esos casos puedes usar perfectamente el tipo Variant[]

Código:
Dim aString As New Variant[]
   Dim aTemp As String[]
 
   aString.Push(["1", "2", "3"])
   aString.Push(["4", "5", "6"])
   aString.Push(["7", "8", "9"])
   aString.Push(["10", "11", "12"])
 
 luego puedes referirte a cada elemento con la sintaxis clásica: n=aString[x][z]

Saludos.

No podemos regresar
omoreno   21-05-2022, 16:26
#3
Hola Harpo.

Te sirve de esta forma:
Código:
   Dim aString As New String[][]
   Dim aTemp As String[]
 
   aString.Push(["1", "2", "3"])
   aString.Push(["4", "5", "6"])
   aString.Push(["7", "8", "9"])
   aString.Push(["10", "11", "12"])
   '
   aTemp = aString.Pop().Copy()
   aString.Insert([aTemp], 1)
Harpo   21-05-2022, 18:07
#4
Gracias a los dos!!

El secreto es encerrar la variable entre corchetes:

Código:
aString.Insert([aTemp], 1)   'Funciona con corchetes

Cambiando el tipo a Variant[] no da error, pero en vez de insertar un array de tres elementos inserta tres nuevos elementos.

[Imagen: fRqf6jm.png]

Lo dicho, muchas gracias señores.
Shordi   22-05-2022, 18:23
#5
(21-05-2022, 18:07)Harpo escribió: Gracias a los dos!!

El secreto es encerrar la variable entre corchetes:

Código:
aString.Insert([aTemp], 1)   'Funciona con corchetes

Cambiando el tipo a Variant[] no da error, pero en vez de insertar un array de tres elementos inserta tres nuevos elementos.

[Imagen: fRqf6jm.png]

Lo dicho, muchas gracias señores.

Lo escribí a vuelapluma (supongo que sería vuela tecla hoy día)  pero la solución es la misma: añade corchetes.

Saludos.

No podemos regresar
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.