FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour mover un elemento de un array
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
mover un elemento de un array
Posted: Mon Feb 15, 2021 04:54 PM
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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
Re: mover un elemento de un array
Posted: Mon Feb 15, 2021 08:59 PM

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

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: mover un elemento de un array
Posted: Tue Feb 16, 2021 02:48 AM
Si a lo que te refieres es a inter-cambiar filas, prueba el siguiente codigo.
Code (fw): Select all Collapse
//----------------------------------------------------//
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.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mover un elemento de un array
Posted: Tue Feb 16, 2021 10:44 AM
Hola. No precisamente.

Hoy por hoy tengo este codigo.
Code (fw): Select all Collapse
   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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion