Stock reminder: 1) I do not work for PST. 2) PST's trained staff
takes any and all questions at
http://support.pstnet.com/e%2Dprime/support/login.asp , and they
strive to respond to all requests in 24-48 hours -- this is pretty
much their substitute for proper documentation, so make full use of
it. 3) If you do get an answer from PST Web Support, please extend
the courtesy of posting their reply back here for the sake of others.
That said, here is my take...
I couldn't follow all the details of your intricate account, but I
understand that you have already randomized some arrays as desired
and now just want to use those somehow in your program. So here are
a few general thoughts.
1) If you have a randomized array that indicates the order in which
to present levels (rows) of a List, then you can use an ExplicitOrder
object for the presentation order of the List -- see the
ExplicitOrder topic in the E-Basic Help facility (thanks go to Alison
Lauer at PST Web Support for showing me this).
2) If your randomized array contains actual stimulus information,
then you could use it in inline code to explicitly set attributes
that get used in your stimulus object. E.g., if ImageFiles contains
a randomized array of image file names for each trial, and iTrial
keeps track of the trial number, then you could use
c.SetAttribute "ImageFile", ImageFiles( iTrial )
and then use [ImageFile] as an attribute reference for the file name
in an ImageDisplay object.
3) Again, if your randomized array contains actual stimulus
information, then you could populate a List directly from inline code
and then run the List as an ordinary object in the program
structure. The "NoRepeats" examples available from PST provide some
example of how to do that (but beware, PST examples generally also
exhibit poor programming practices), or better, just set any List to
Load Method Script and then look at the generated E-Basic code to see
how it's done (note that List.AddAttrib does not appear in the List
topic of the E-Basic Help, but instead appears under FactorSpace.AddAttrib).
One style note, I am loathe to use inline code to modify a "main"
List (i.e., one that runs Procedures), because it leaves no clue to
the reader that the List they see in the structure is not the List
that will run at run-time. Instead, I prefer to modify a nested
List, which, the way I do it, leaves a "?" in place of the List,
thereby warning readers to look at the code to see what that List
will do. Just one of many ways in which my programming practices
depart from those of PST.
-- David McFarlane, Professional Faultfinder