Panorama X documentation should explain dependencies such as sensitivity to wildcards


#1

This statement:

message arraylookup("ab,alpha;&?,beta;tr,gamma","&***?",";",",","not found")

returns the result, “beta” so presumably, the arraylookup( function utilises the arraysearch( function which recognises wildcards. This is not mentioned in the documentation but it should be. It’s not as if * and ? are particularly esoteric characters.

There are other stat/funcs which also use the arraysearch( function and there are probably many other similar dependencies which are not documented but should be.

Some year or so ago, Jim, you told me how to trace these dependencies and I compiled a file of all of these connections. Sadly, it’s been lost amidst numerous clean installs. If you remind me how to do it, I’m happy to take on the task of updating the Help wizard - assuming you agree it would be useful.


#2

I just tested your formula in the Formula Workshop wizard, and I am not sure about the question mark as a wildcard. The asterisk works obviously, but

arraylookup("ab,alpha;&xyz,beta;tr,gamma","&x?z",";",",","not found")

gives “not found”.

Your code sample would work with a single asterisk (wildcard for multiple characters), too:

message arraylookup("ab,alpha;&?,beta;tr,gamma","&*?",";",",","not found")

#3

Have you tried it in a procedure? My original test was without the question mark.

I’m waiting on Jim’s response.


#4

I’m afraid I have no recollection of that, at it’s not clear to me that there is a straightforward way to do it. In fact, there is no way to do it at your end, and it would be quite difficult at my end. I just checked arraylookup(, and it does NOT use arraysearch(. However, in the Objective-C code, arraylookup( and arraysearch( call the same underlying method. But there is no way to tell that without access to the Objective-C code (and even then, it doesn’t jump out at you, there is certainly no automated way to scan for that sort of thing).

I think you may be referring to the arraycontains( function, which is a custom function that uses arraysearch(. I think Dave mentioned that, and I’m sure he discovered that by looking at the CustomFunctions.def file inside the Panorama application package. Looking in that file, the only functions that use arraysearch( are the variations on arraycontains(, and the arrayreverselookup( function. But there may be others that can only be determined from the Objective-C code.


#5

Well, the arraylookup( function certainly responds to wildcards.

I have a bunch of proposed Help wizard corrections of this type. I’ll add these to it when I finish my current big project and you can decide which ones to accept.