Создать макросы из длинной строки - PullRequest
1 голос
/ 19 марта 2019

Рассмотрим следующую строку, содержащуюся в локальном макросе ABC:

A1 A2 B3 C2 B5 A3 C9 C4 B1 A7

Как я могу создать отдельный локальный макрос (не переменный) для каждого набора элементов?

Мне также хотелось бы, чтобы новые локальные макросы сортировались в алфавитном порядке.

Например:

A = A1 A2 A3 A7
B = B1 B3 B5 
C = C2 C4 C9

1 Ответ

3 голосов
/ 19 марта 2019

У меня работает следующее:

local ABC A1 A2 B3 C2 B5 A3 C9 C4 B1 A7
local ABC : list sort ABC

tokenize `ABC'

foreach l in A B C {
    forvalues i = 1 / `: word count `ABC'' {
        if strmatch("``i''", "`l'*") local `l' ``l'' ``i''
    }
}

. display "`A'"
A1 A2 A3 A7

. display "`B'"
B1 B3 B5

. display "`C'"
C2 C4 C9
...