﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » Want to save data stored on a list to the summary data file</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Fri, 10 Jul 2026 14:50:10 GMT</lastBuildDate><ttl>20</ttl><item><title>Want to save data stored on a list to the summary data file</title><link>https://forums.millisecond.com/Topic41328.aspx</link><description>Hello:&lt;br/&gt;&lt;br/&gt;I'm building an experiment to run online. Because it involves many steps, things are compartmentalized into different IQX files (the sub-files), which are all "included" in the main IQX file.&lt;br/&gt;I would like to save the data stored on a list --whose values are computed in one of the sub IQX file-- to the summary data file, which is defined in the main IQX file.&lt;br/&gt;&lt;br/&gt;I guess one way to bring the data, so to say, to the main IQX file is to have the list defined in the main IQX file, and only referred to in the sub IQX file.&lt;br/&gt;&lt;br/&gt;However, I haven't figure out a good way to save the data on the list to the summary data file. Would appreciate if you have any suggestions!&lt;br/&gt;&lt;br/&gt;I know the size of the lists I want to save so I guess I could store the data on the list into named variables, e.g., xxx001, xxx002, xxx003. I wonder if there is a more general way to do that other than manually assign N times the values, as in values.xxx001 = list.randnum.nextValue, values.xxx002 = list.randnum.nextValue, etc. (after resetting the list so that it starts from the beginning...&lt;br/&gt;&lt;br/&gt;Thanks in advance,&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;%list.randnum.nextValue%&amp;gt; -- Press the space bar to continue")&lt;br/&gt;/ fontStyle = ("Arial", 2.08%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ preTrialPause = 500&lt;br/&gt;/ stimulusTimes = [1=myText]&lt;br/&gt;/ validResponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list randnum&amp;gt;&lt;br/&gt;/ selectionMode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt; // that would be defined in a separate IQX file&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// List of random numbers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //2&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //4&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //5&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //6&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //7&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //8&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //9&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //10&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ trials = [1-10=myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt; // I would like to save the values in randnum in the summary data file defined in the IQX where the expt is defined&lt;br/&gt;/ preInstructions = (myPage)&lt;br/&gt;/ blocks = [1=myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page myPage&amp;gt;&lt;br/&gt;On the following 10 trials, press the space bar&lt;br/&gt;&amp;lt;/page&amp;gt;</description><pubDate>Fri, 11 Jul 2025 04:49:09 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Want to save data stored on a list to the summary data file</title><link>https://forums.millisecond.com/Topic41335.aspx</link><description>&lt;blockquote data-id="41330" class="if-quote-wrapper" unselectable="on" data-guid="1752209306097" contenteditable="false" id="if_insertedNode_1752209304730"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41330" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41330" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41330" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41330"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="41329" class="if-quote-wrapper" unselectable="on" data-guid="1752209306097" contenteditable="false" id="if_insertedNode_1752150820981"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41329" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41329" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41329" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41329"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="41328" class="if-quote-wrapper" unselectable="on" data-guid="1752209306097" contenteditable="false" id="if_insertedNode_1752147309434"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41328" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41328" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41328" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41328"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello:&lt;br/&gt;&lt;br/&gt;I'm building an experiment to run online. Because it involves many steps, things are compartmentalized into different IQX files (the sub-files), which are all "included" in the main IQX file.&lt;br/&gt;I would like to save the data stored on a list --whose values are computed in one of the sub IQX file-- to the summary data file, which is defined in the main IQX file.&lt;br/&gt;&lt;br/&gt;I guess one way to bring the data, so to say, to the main IQX file is to have the list defined in the main IQX file, and only referred to in the sub IQX file.&lt;br/&gt;&lt;br/&gt;However, I haven't figure out a good way to save the data on the list to the summary data file. Would appreciate if you have any suggestions!&lt;br/&gt;&lt;br/&gt;I know the size of the lists I want to save so I guess I could store the data on the list into named variables, e.g., xxx001, xxx002, xxx003. I wonder if there is a more general way to do that other than manually assign N times the values, as in values.xxx001 = list.randnum.nextValue, values.xxx002 = list.randnum.nextValue, etc. (after resetting the list so that it starts from the beginning...&lt;br/&gt;&lt;br/&gt;Thanks in advance,&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;%list.randnum.nextValue%&amp;gt; -- Press the space bar to continue")&lt;br/&gt;/ fontStyle = ("Arial", 2.08%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ preTrialPause = 500&lt;br/&gt;/ stimulusTimes = [1=myText]&lt;br/&gt;/ validResponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list randnum&amp;gt;&lt;br/&gt;/ selectionMode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt; // that would be defined in a separate IQX file&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// List of random numbers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //2&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //4&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //5&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //6&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //7&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //8&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //9&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //10&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ trials = [1-10=myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt; // I would like to save the values in randnum in the summary data file defined in the IQX where the expt is defined&lt;br/&gt;/ preInstructions = (myPage)&lt;br/&gt;/ blocks = [1=myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page myPage&amp;gt;&lt;br/&gt;On the following 10 trials, press the space bar&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41328"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQX files you load into another script via &amp;lt;include&amp;gt; are no different than having the code contained in those IQX files in the main script. It does not matter where your &amp;lt;list&amp;gt; resides.&lt;br/&gt;&lt;br/&gt;If you want to output every single value contained in a list to the single-line summary data, then you indeed need to either define a variable for each item in the list and log those variables, or -- at a minimum -- loop through the list's items at some point, concat() all its items into a string, and log that string.&lt;a class="if-quote-goto quote-link" href="#" data-id="41329"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Example for the latter:&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ roundNumber = 0&lt;br/&gt;/ myValue = null&lt;br/&gt;/ listValuesRound1 = null&lt;br/&gt;/ listValuesRound2 = null&lt;br/&gt;/ listValuesRound3 = null&lt;br/&gt;/ listValuesRound4 = null&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list myList&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt;&lt;br/&gt;/ blocks = [1-4 = myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt;&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.roundNumber += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;]&lt;br/&gt;/ onBlockEnd = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.roundNumber == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound1 = concat(values.listValuesRound1, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound1 = concat(values.listValuesRound1, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound2 = concat(values.listValuesRound2, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound2 = concat(values.listValuesRound2, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound3 = concat(values.listValuesRound3, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound3 = concat(values.listValuesRound3, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 4) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound4 = concat(values.listValuesRound4, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound4 = concat(values.listValuesRound4, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials = [1-3 = myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;+&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ onTrialBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.myValue = list.myList.nextvalue;&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, myText]&lt;br/&gt;/ validresponse = (57)&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("Round #&amp;lt;%values.roundNumber%&amp;gt; | List value in this trial: &amp;lt;%values.myValue%&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date, time, subject, group, session, blocknum, blockcode, trialnum, trialcode, response, latency, correct, values.myValue)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;summarydata&amp;gt;&lt;br/&gt;/ columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid, script.elapsedtime, script.completed, values.listValuesRound1, values.listValuesRound2, values.listValuesRound3, values.listValuesRound4)&lt;br/&gt;&amp;lt;/summarydata&amp;gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="41330"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks for the sample code, Dave!&lt;br/&gt;&lt;br/&gt;&amp;gt; IQX files you load into another script via &amp;lt;include&amp;gt; are no different than having the code contained in those IQX files in the main script. It does not matter where your &amp;lt;list&amp;gt; resides.&lt;br/&gt;&lt;br/&gt;I see. Good to know.&lt;br/&gt;Best,&lt;br/&gt;EN</description><pubDate>Fri, 11 Jul 2025 04:49:09 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Want to save data stored on a list to the summary data file</title><link>https://forums.millisecond.com/Topic41330.aspx</link><description>&lt;blockquote data-id="41329" class="if-quote-wrapper" unselectable="on" data-guid="1752150821462" contenteditable="false" id="if_insertedNode_1752150820981"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41329" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41329" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41329" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41329"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="41328" class="if-quote-wrapper" unselectable="on" data-guid="1752150821462" contenteditable="false" id="if_insertedNode_1752147309434"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41328" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41328" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41328" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41328"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello:&lt;br/&gt;&lt;br/&gt;I'm building an experiment to run online. Because it involves many steps, things are compartmentalized into different IQX files (the sub-files), which are all "included" in the main IQX file.&lt;br/&gt;I would like to save the data stored on a list --whose values are computed in one of the sub IQX file-- to the summary data file, which is defined in the main IQX file.&lt;br/&gt;&lt;br/&gt;I guess one way to bring the data, so to say, to the main IQX file is to have the list defined in the main IQX file, and only referred to in the sub IQX file.&lt;br/&gt;&lt;br/&gt;However, I haven't figure out a good way to save the data on the list to the summary data file. Would appreciate if you have any suggestions!&lt;br/&gt;&lt;br/&gt;I know the size of the lists I want to save so I guess I could store the data on the list into named variables, e.g., xxx001, xxx002, xxx003. I wonder if there is a more general way to do that other than manually assign N times the values, as in values.xxx001 = list.randnum.nextValue, values.xxx002 = list.randnum.nextValue, etc. (after resetting the list so that it starts from the beginning...&lt;br/&gt;&lt;br/&gt;Thanks in advance,&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;%list.randnum.nextValue%&amp;gt; -- Press the space bar to continue")&lt;br/&gt;/ fontStyle = ("Arial", 2.08%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ preTrialPause = 500&lt;br/&gt;/ stimulusTimes = [1=myText]&lt;br/&gt;/ validResponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list randnum&amp;gt;&lt;br/&gt;/ selectionMode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt; // that would be defined in a separate IQX file&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// List of random numbers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //2&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //4&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //5&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //6&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //7&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //8&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //9&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //10&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ trials = [1-10=myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt; // I would like to save the values in randnum in the summary data file defined in the IQX where the expt is defined&lt;br/&gt;/ preInstructions = (myPage)&lt;br/&gt;/ blocks = [1=myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page myPage&amp;gt;&lt;br/&gt;On the following 10 trials, press the space bar&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41328"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQX files you load into another script via &amp;lt;include&amp;gt; are no different than having the code contained in those IQX files in the main script. It does not matter where your &amp;lt;list&amp;gt; resides.&lt;br/&gt;&lt;br/&gt;If you want to output every single value contained in a list to the single-line summary data, then you indeed need to either define a variable for each item in the list and log those variables, or -- at a minimum -- loop through the list's items at some point, concat() all its items into a string, and log that string.&lt;a class="if-quote-goto quote-link" href="#" data-id="41329"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Example for the latter:&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ roundNumber = 0&lt;br/&gt;/ myValue = null&lt;br/&gt;/ listValuesRound1 = null&lt;br/&gt;/ listValuesRound2 = null&lt;br/&gt;/ listValuesRound3 = null&lt;br/&gt;/ listValuesRound4 = null&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list myList&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt;&lt;br/&gt;/ blocks = [1-4 = myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt;&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.roundNumber += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.myList.appenditem(round(rand(1,99999999)));&lt;br/&gt;]&lt;br/&gt;/ onBlockEnd = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.roundNumber == 1) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound1 = concat(values.listValuesRound1, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound1 = concat(values.listValuesRound1, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound2 = concat(values.listValuesRound2, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound2 = concat(values.listValuesRound2, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound3 = concat(values.listValuesRound3, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound3 = concat(values.listValuesRound3, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else if (values.roundNumber == 4) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; list.myList.itemCount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound4 = concat(values.listValuesRound4, list.myList.item(i));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.listValuesRound4 = concat(values.listValuesRound4, "; ");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials = [1-3 = myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;+&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ onTrialBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.myValue = list.myList.nextvalue;&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, myText]&lt;br/&gt;/ validresponse = (57)&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("Round #&amp;lt;%values.roundNumber%&amp;gt; | List value in this trial: &amp;lt;%values.myValue%&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date, time, subject, group, session, blocknum, blockcode, trialnum, trialcode, response, latency, correct, values.myValue)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;summarydata&amp;gt;&lt;br/&gt;/ columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid, script.elapsedtime, script.completed, values.listValuesRound1, values.listValuesRound2, values.listValuesRound3, values.listValuesRound4)&lt;br/&gt;&amp;lt;/summarydata&amp;gt;[/code]</description><pubDate>Thu, 10 Jul 2025 12:33:56 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Want to save data stored on a list to the summary data file</title><link>https://forums.millisecond.com/Topic41329.aspx</link><description>&lt;blockquote data-id="41328" class="if-quote-wrapper" unselectable="on" data-guid="1752147309562" contenteditable="false" id="if_insertedNode_1752147309434"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41328" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="41328" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="41328" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 7/10/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41328"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello:&lt;br/&gt;&lt;br/&gt;I'm building an experiment to run online. Because it involves many steps, things are compartmentalized into different IQX files (the sub-files), which are all "included" in the main IQX file.&lt;br/&gt;I would like to save the data stored on a list --whose values are computed in one of the sub IQX file-- to the summary data file, which is defined in the main IQX file.&lt;br/&gt;&lt;br/&gt;I guess one way to bring the data, so to say, to the main IQX file is to have the list defined in the main IQX file, and only referred to in the sub IQX file.&lt;br/&gt;&lt;br/&gt;However, I haven't figure out a good way to save the data on the list to the summary data file. Would appreciate if you have any suggestions!&lt;br/&gt;&lt;br/&gt;I know the size of the lists I want to save so I guess I could store the data on the list into named variables, e.g., xxx001, xxx002, xxx003. I wonder if there is a more general way to do that other than manually assign N times the values, as in values.xxx001 = list.randnum.nextValue, values.xxx002 = list.randnum.nextValue, etc. (after resetting the list so that it starts from the beginning...&lt;br/&gt;&lt;br/&gt;Thanks in advance,&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;&amp;lt;text myText&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;%list.randnum.nextValue%&amp;gt; -- Press the space bar to continue")&lt;br/&gt;/ fontStyle = ("Arial", 2.08%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial myTrial&amp;gt;&lt;br/&gt;/ preTrialPause = 500&lt;br/&gt;/ stimulusTimes = [1=myText]&lt;br/&gt;/ validResponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list randnum&amp;gt;&lt;br/&gt;/ selectionMode = sequence&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block myBlock&amp;gt; // that would be defined in a separate IQX file&lt;br/&gt;/ onBlockBegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// List of random numbers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //2&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //4&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //5&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //6&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //7&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //8&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //9&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.randnum.appendItem(rand(0, 10)); //10&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ trials = [1-10=myTrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt myExpt&amp;gt; // I would like to save the values in randnum in the summary data file defined in the IQX where the expt is defined&lt;br/&gt;/ preInstructions = (myPage)&lt;br/&gt;/ blocks = [1=myBlock]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page myPage&amp;gt;&lt;br/&gt;On the following 10 trials, press the space bar&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41328"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQX files you load into another script via &amp;lt;include&amp;gt; are no different than having the code contained in those IQX files in the main script. It does not matter where your &amp;lt;list&amp;gt; resides.&lt;br/&gt;&lt;br/&gt;If you want to output every single value contained in a list to the single-line summary data, then you indeed need to either define a variable for each item in the list and log those variables, or -- at a minimum -- loop through the list's items at some point, concat() all its items into a string, and log that string.</description><pubDate>Thu, 10 Jul 2025 12:14:21 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>