I completely agree that certain macro or combinations of macros allow to make most of the wished features
1) {.header|user-agent.} take a lot of time
2) extract the desired information 'user-agent-id' take another lot of time {.substring| source |mask.} or something as it
3) load the file {.load|user-agen.txt.}
4) find the 'user-agent-id' {.is substing|....... .}
5) if false then add 'user-agent-id' to 'user-agent.txt'
6) another action
1+2+3+4+5+6, It really sets a lot of time in term of resources for hfs by comparison with the following action
1+2)
if name = '%user-agent%' then //
result:=macroQuote(getAgentID(md.cd.conn)) // define the var %user-agent%
3+4+5)
addUniqueString(getAgentID(conn),usersAgents); // add the current agent to the list
6) use %user-agent% and {get|know agents|separator.} or {.from table|ini|usersagents.} to do the rest
When they are small actions, I am to use the macro existing, but when to acquire a simple information requires an army of resources system and of time(weather), then I try to propose something more economic for a mçeme result. What prevents not at all, to whom wishes it, to use only macro for the same job.
by example it is possible with macros to emulate the var %item-url%, when you have only some files, it is not too binding, but with some tens it becomes long to wait for the final result.