Page 1 of 1
mover un elemento de un array
Posted: Mon Feb 15, 2021 4:54 pm
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.
Re: mover un elemento de un array
Posted: Mon Feb 15, 2021 8:59 pm
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
Re: mover un elemento de un array
Posted: Tue Feb 16, 2021 2:48 am
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.
Re: mover un elemento de un array
Posted: Tue Feb 16, 2021 10:44 am
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.