11-18-2022, 01:09 AM
(This post was last modified: 11-18-2022, 01:10 AM by TerryRitchie.)
(11-18-2022, 12:46 AM)PhilOfPerth Wrote: Thanks for that!
You pointed me in the right direction, but I still don't really understand why I can't just swap the two elements.
But if I don't use the SWAP function, I can just do this:
It introduces two new variables, but that's ok in my case. I'll look at using ASC instead of mid$ too, though speed is not important in my case either.Code: (Select All)a$ = "ABCDEFG"
Print a$
t1$ = Mid$(a$, 3, 1): t2$ = Mid$(a$, 5, 1)
Mid$(a$, 3, 1) = t2$: Mid$(a$, 5, 1) = t1$
Print a$
The numbers contained in MID$() are not elements, they are string positions. Elements are contained within arrays:
DIM A(5, 10, 20)
5, 10, and 20 are your elements, often referred to as indexes.
MID$(a$, 10, 20)
a$ is the string to work with
10 is the start position within that string
20 is the number of characters, counting the start position, to extract from the string.
SWAP only works with variables, not positions within variables.
DIM a(10, 10) AS INTEGER
DIM b(10, 10) AS INTEGER
You can swap an entire array of variables (as long as the arrays are of equal size and type):
SWAP a, b
or individual elements within the array (which are simply variable values):
SWAP a(1, 3), b(3, 7)