Shop OBEX P1 Docs P2 Docs Learn Events
array shifting — Parallax Forums

array shifting

Bobb FwedBobb Fwed Posts: 1,119
edited 2008-10-03 18:03 in Propeller 1
The answer is probably no, but I'll ask anyway.

Is there a way to "shift" an array. For example:
word test

test[noparse][[/noparse] 3 ] := $FF_FF
test[noparse][[/noparse] 2 ] := $99_99
test[noparse][[/noparse] 1 ] := $44_44
test[noparse][[/noparse] 0 ] := $11_11



I want to shift everything down one position, so it looks like this:
test[noparse][[/noparse] 3 ] == $00_00
test[noparse][[/noparse] 2 ] == $FF_FF
test[noparse][[/noparse] 1 ] == $99_99
test[noparse][[/noparse] 0 ] == $44_44



doing it some other way than this:
test[noparse][[/noparse] 0 ] := test[noparse][[/noparse] 1 ]
test[noparse][[/noparse] 1 ] := test[noparse][[/noparse] 2 ]
test[noparse][[/noparse] 2 ] := test[noparse][[/noparse] 3 ]
test[noparse][[/noparse] 3 ]~

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2008-10-03 15:57
    You can use WORDMOVE: WORDMOVE(@test,@test+2,3)

    This won't add the zero at the end. You'll still need: test[noparse][[/noparse] 3 ]~

    WORDMOVE "knows" how to correct for movement in either direction in memory when the areas overlap.
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2008-10-03 18:03
    thanks, worked great
Sign In or Register to comment.