Most efficient way to reorder a string
Most efficient way to reorder a string
(OP)
To give the question some context: I have a macro parameter that consists of a macro variable and free text.
For example, the macro variable, X, has a value of [b]"A:abc,B:uvw"[/b] which is then concatenated with [b]",A:def,B:xyz"[/b] by a developer:
[code]
%let X = A:abc,B:uvw;
%macro TEST(VAR=%quote(&X,A:def,B:xyz));
%put &VAR;
%mend;
[/code]
However, the macro TEST requires the macro parameter VAR to have the format [b]"A:abc,def,B:uvw,xyz"[/b]. This is relatively straight forward to achieve by looping through the parameter and reconstructing the string through a combination of %index and %substr. However, as this macro may be called quite frequently, I am concerned about its efficiency.
So, in short, my question is: What is an efficient way to transform the string [b]"A:abc,B:uvw,A:def,B:xyz"[/b] to [b]"A:abc,def,B:uvw,xyz"[/b]?
Thanks.
For example, the macro variable, X, has a value of [b]"A:abc,B:uvw"[/b] which is then concatenated with [b]",A:def,B:xyz"[/b] by a developer:
[code]
%let X = A:abc,B:uvw;
%macro TEST(VAR=%quote(&X,A:def,B:xyz));
%put &VAR;
%mend;
[/code]
However, the macro TEST requires the macro parameter VAR to have the format [b]"A:abc,def,B:uvw,xyz"[/b]. This is relatively straight forward to achieve by looping through the parameter and reconstructing the string through a combination of %index and %substr. However, as this macro may be called quite frequently, I am concerned about its efficiency.
So, in short, my question is: What is an efficient way to transform the string [b]"A:abc,B:uvw,A:def,B:xyz"[/b] to [b]"A:abc,def,B:uvw,xyz"[/b]?
Thanks.
RE: Most efficient way to reorder a string
To give the question some context: I have a macro parameter that consists of a macro variable and free text.
For example, the macro variable, X, has a value of "A:abc,B:uvw" which is then concatenated with ",A:def,B:xyz" by a developer:
CODE
%macro TEST(VAR=%quote(&X,A:def,B:xyz));
%put &VAR;
%mend;
However, the macro TEST requires the macro parameter VAR to have the format "A:abc,def,B:uvw,xyz". This is relatively straight forward to achieve by looping through the parameter and reconstructing the string through a combination of %index and %substr. However, as this macro may be called quite frequently, I am concerned about its efficiency.
So, in short, my question is: What is an efficient way to transform the string "A:abc,B:uvw,A:def,B:xyz" to "A:abc,def,B:uvw,xyz"?
Thanks.