mover un elemento de un array

Post Reply
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

mover un elemento de un array

Post by goosfancito »

hola.
Se puede, sin usar ains y luego copiar y luego adel, mover un elemento de un array a otra posicion del mismo arrray?

a[1]:= "a"
a[2]:= "b"
a[3]:= "c"

quedando como resultado final
a[1]:= "a"
a[2]:= "c"
a[3]:= "b"
gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
George
Posts: 710
Joined: Tue Oct 18, 2005 6:49 pm

Re: mover un elemento de un array

Post by George »

Dependiendo de lo que quieras hacer y del tamaño del Array tal vez te funcione lo siguiente:

cTmp := a[2]
a[2] := a[3]
a[3] := cTmp
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: mover un elemento de un array

Post by FranciscoA »

Si a lo que te refieres es a inter-cambiar filas, prueba el siguiente codigo.

Code: Select all

//----------------------------------------------------//
Function interCambFILA()
   local oDlg, oBrw, oFont, oCur  
   local aData[ 12 ]

   AEval( aData, { |u,i| aData[ i ] := { NtoCMonth(i), i } } )

   DEFINE CURSOR oCur DRAG
   DEFINE FONT oFont NAME "VERDANA" SIZE 0,-16

   DEFINE DIALOG oDlg SIZE 400,300 PIXEL FONT oFont TITLE "DRAG/DROP: INTER-CAMBIAR FILAS"
   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
           DATASOURCE aData COLUMNS 1,2 CELL LINES NOBORDER

   WITH OBJECT oBrw
      :nStretchCol      := 1
      :oDragCursor      := oCur
      :bDragBegin       := { |r,c,f,o| SetDropInfo( { oBrw:nArrayAt, oBrw:aRow } ) }
      :bDropOver        := { |u,r,c,f| oBrw:LButtonDown( r,c ), ;
                                       oBrw:LButtonUp(r,c), ;
                                       aData[u[1]] := oBrw:aRow, ;
                                       aData[oBrw:nArrayAt] := u[2], ;
                                       oBrw:Refresh() }

      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont
   RELEASE CURSOR oCur
return nil
Saludos.
Last edited by FranciscoA on Tue Feb 16, 2021 3:53 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: mover un elemento de un array

Post by goosfancito »

Hola. No precisamente.

Hoy por hoy tengo este codigo.

Code: Select all

   AIns( ::aDatos, nDestino + 1, ::aDatos[ nOrigen ], .T. )
   ADel( ::aDatos, nOrigen + 1, .T. )
 
y queria mejorarlo, pense que habia una funcion interna que podría utilizar.

gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Post Reply