1.1 Skapa ett Inline-Script som skapar filen För att skapa ett inline script drar man InLine till där man vill ha själva scriptet. För att skapa en data-fil har jag i, simon-uppgiften, skapat ett InLine-script och lagt det under PracticeSimon-proceduren. Jag har döpt scriptet till filemagement men det kan döpas till vad som man tycker passar det som görs i InLine-scriptet.
1.2 Innehållet i InLine-scriptet (dvs., det om skapar csv-filen) Jag brukar vilja kunna låta testledaren/den som bedriver forskningen möjligheten att bestämma namn själv på csv-filen. Därför börjar vi med att skapa en variabel som heter experimentid Vi börjar med att gå til Edit och välja Experiment 2. Vi fortsätter sedan med att klicka på fliken Startup Info. Välj sedan Add...
3. I fältet Log Name skriver vi in experimentid och i prompten Experiment ID (utan citat-tecken). Välja sedan Data Type String och skriv in simontask i fältet Default. 4. Vi fortsätter med att klicka på InLine-scriptet filemagement och det kan se ut så här: I bilden ovan skapas en undermapp som heter data_ + det vi tidigare satte som experiment ID (dvs., simontask ). Dvs., vi får en mapp som heter data_simontask och det skapas även
en csv-fil i denna mapp med samma namn. Det viktigaste i scriptet (finns bifogat i Appendix A) är det blåmarkerade. I detta fall kommer vi ha kolumner med namnen SubID, Date, Age, Sex, RT, ACC, och så vidare. Notera, att jag använder semikolon ( ; ) som separator då excel, i den svenska inställningen, använder kommatecknet (, ) som decimaltecken (t.ex., 0,23). Dvs., det som avgör vad som är en kolumn eller inte är semikolon. Ytterligare en notering, vill man ha Ålder och Kön ( Age och Sex ) behöver man fixa det i Startup Info (dvs., där vi skapade variabeln experimentid tidigare). 1.3 InLine-script som sparar data Som synes på bilden (blåmarkerat) lade jag ett InLine-script i slutet av SimonTrial-proceduren (skript finns i Appendix B). Återigen, detta script bör ges ett passande namn (exempelvis, savedate ) som visar vad det gör. Responser loggas, i exemplet här (Simon-uppgiften), i simontarget (ImageDisplayobjektet).
En liten sidopunkt innan vi tittar på scriptet. Beroende på vad vi vill spara i vår datafil (csv) kan vi se vad vi döpt saker till i vår lista. Jag brukar vilja ha information om vilket stimulus som presenterades, korrekt respons, och vilken typ av trial (dvs., congruent eller incongruent ): Nu till InLine-scriptet: Det viktiga här är raden som startar med print #fileid,. Det är här vi hämtar, och sparar ned, all information. c.getattrib( Subject ), till exempel, hämtar information från de variable vi skapat i Startup Info ( Subject ID, Age, etc). c.getattrib( simontarget.rt ), till exempel, hämtar responstiden (för nuvarande trial). Vill man hämta information sparat från listan man kör (i detta fall List3 ) behöver man bara skriva c.getattrib( correct_resp ), till exempel. Viktigt att tänka på här är att man lägger in variablerna i den ordning man skapade kolumn-namnen på (i inline-scriptet vi döpte till filemanagment i början).
Notera, för att hämta information från ett ImageDisplay -objekt måste man specificera vilket. Viktigt, prerelease för ImageDisplay måste sättas till 0. Detta gör man i Properties på sin ImageDisplay under fliken Duration/Input : I exemplet, med Simon-uppgiften här, så hämtar vi information från Startup Info (t.ex., Age, Sex ), från List3 (t.ex., correct_resp ), och från får ImageDisplay (dvs., simontarget ; RT, ACC ).
Appendix A filemanagment inline script: ' Sets up a data file On Error Resume Next MkDir "data_"+c.getattrib ("experimentid") Dim save As String save = CurDir$ chdir("data_"+c.getattrib ("experimentid")) If FileExists("data_"+c.GetAttrib ("experimentid")+".csv")=false Then Dim fileid As Integer fileid=freefile open "data_"+c.getattrib ("experimentid")+".csv" For output As #fileid print #fileid,"subid;date;age;sex;rt;acc;correctresponse;response;arrows;trialtype" close End If chdir(save)
Appendix B inline script som sparar data Notera här att print #fileid, måste läggas på samma rad så att det ligger längre in än open och close (se bilden i guiden ovan). Dim save As String Dim fileid As Integer save = CurDir$ chdir("data_"+c.getattrib ("experimentid")) fileid=freefile open "data_"+c.getattrib("experimentid")+".csv" For append As #fileid ' "SubID;Date;Age;Sex;RT;ACC;CorrectResponse;simonTarget;TrialType" print #fileid,(c.getattrib("subject"));";";date;";";(c.getattrib("age"));";";(c.getattrib("sex"));";";(c.geta ttrib("simontarget.rt"));";";(c.getattrib("simontarget.acc"));";";(c.getattrib("correct_resp"));";";(c. GetAttrib("simonTarget.Resp"));";";(c.GetAttrib("display2"));";";(c.GetAttrib("Type_C")) close chdir(save) doevents