Página 1 de 1

Como eliminar una fila de un array dos dimensiones

Publicado: Dom Jun 18, 2023 8:06 pm
por JoePublic
Hola,
De una matriz o array MUY LARGO necesito eliminar algunos registros (filas) sin tener que pasarlo por un bucle para eliminarlos.

¿Alguien sabe que comando utilizar o como hacerlo de forma directa?
Como ejemplo vean el codigo. Busco para arrays bidimensionales como unidimensionales.
Con el comando Erase, lo borra, pero existe un lugar vacio dentro del array y yo quiero quitarlo por completo y que se corran las posiciones.
Es decir que del Array (1,2,3,4,5) al eliminar la posicion 1 el resultado sería Array (1,3,4,5).
He visto que con la librería nueva ScriptForge se puede utilizar el comando "slice" pero no se como.
Gracias.

Código: Seleccionar todo

Sub eliminaUnValor()
   Dim myArray () as Variant
   myArray = Array (1,2,3,4,5)
   Erase myArray (1) 'Este Vacía la posición pero necesito que se elimine también.
   MsgBox "fin"
End Sub


Re: Como eliminar un elemento de un array

Publicado: Lun Jun 19, 2023 1:07 pm
por Neftali R
Buen día,

Yo personalmente no conozco una forma directa de hacer eso, pero sí sé cómo hacerlo de forma indirecta con "JOIN" y "SPLIT", el potencial problema de este método, es que al final los valores de la matriz serán texto, String.

Código: Seleccionar todo

Sub eliminaUnValor()
   Dim sTmp As String, myArray () as Variant
   myArray = Array (1,2,3,4,5)
   Erase myArray (1) 'Este Vacía la posición pero necesito que se elimine también.
   sTmp = Join(myArray,"-")
   myArray = Split(sTmp,"--")
   sTmp = Join(myArray,"-")
   myArray = Split(sTmp,"-")
   MsgBox "fin"
End Sub

Sub eliminaUnValorResumido()
   Dim myArray () as Variant
   myArray = Array (1,2,3,4,5)
   Erase myArray (1) 'Este Vacía la posición pero necesito que se elimine también.
   myArray = Split(Join(Split(Join(myArray,"-"),"--"),"-"),"-")
   MsgBox "fin"
End Sub
Saludos.

Re: Como eliminar un elemento de un array

Publicado: Mié Jun 21, 2023 7:18 pm
por JoePublic
Gracias,
Pero me gustaria conocer alguna otra manera mas efectiva, no sólo para arrays unidimensionales, sino tambien bidimensionales. Si alguien conoce algun metodo o funcion más directo para hacer la macro en OooBasic o con la nueva librería de ScriptForge, ruego deje la solución.
Gracias a todo aquel que puede aportar un poco de luz.

Re: Como eliminar un elemento de un array

Publicado: Mié Jun 21, 2023 10:09 pm
por Longi
Buenas!
Prueba con esto:
https://wiki.open-office.es/Funciones_p ... fice_Basic

A ver si te sirve! ;)

Re: Como eliminar un elemento de un array dos dimensiones

Publicado: Sab Sep 02, 2023 9:01 pm
por JoePublic
Lo siento. No me sirvio.
Todavia sigo buscando como eliminar un registro o fila de un array bidimensional (multidimensional) sin tener que pasar todo el array por un bucle for to next. Sabeis si con "slice" de Scriptforge se puede hacer...?. Busco ayuda !!!