Mastering E-Prime: How to use a custom data file or path name
David McFarlane
mcfarla9 at msu.edu
Tue Feb 2 14:27:06 UTC 2010
E-Prime automatically puts data files into the same directory as the
.ebs (or .ebs2) file, and gives each one a name of the form
<Experiment>-<Subject>-<Session>.edat (or .edat2). But what if you
want to customize the file name, or change the path to put data files
in a chosen directory location?
You can do this by taking control of the Context.Datafile object,
which you may learn about in the online E-Basic Help or from the code
that E-Studio generates for the Main() routine. You would then add
the appropriate inline code as the first thing in your
SessionProc. Here is an example script that you may build on. For
the sake of this example we ask the experimenter for their initials
(and then add that to the file name), though in practice we would
more likely make this a StartupInfo parameter.
' Close data file already started in the Main() routine.
If CLng(c.GetAttrib("Subject")) <> 0 Then
c.DataFile.Close
Kill c.DataFile.FileName ' might as well also delete it
End If
' Construct new file or path name any way you like. You may want to
' add code to deal with potential problems such as existing (duplicate)
' or illegal file names and non-existent directories.
Dim exptrID as String
exptrID = AskBox( "Enter experimenter initials:" )
c.DataFile.Filename = c.GetAttrib("Experiment") & "-" & exptrID & "-" _
& c.GetAttrib("Subject") & "-" & c.GetAttrib("Session") & ".txt"
' Start new data file.
If CLng(c.GetAttrib("Subject")) <> 0 Then
c.DataFile.Open
c.LogHeader
End If
Note that this method uses ordinary features of E-Prime and should
work with every version going back to 1.0.
A couple of warnings: First, if you use this to change the data
path, pay attention to the use of forward slashes ("/") vs.
backslashes ("\") as path separators in E-Prime strings, as discussed
at http://support.pstnet.com/forum/Topic2336-12-1.aspx and
elsewhere. Second, without care you could easily lose data doing
this, so do not do this unless you know what you are doing and can
enforce the proper safeguards.
-- David McFarlane, E-Prime Master & Professional Faultfinder
--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.
More information about the Eprime
mailing list