Search code examples
imacros

iMacros with JS - Accessing csv file: How to change the value of n dynamically in {{!COLn}}


Am using iMacros with JS in Firefox. To retrieve column data, I am using

SET !EXTRACT {{!COL1}}

How can I dynamically change the value 1 so that I shall retrieve data from other columns as well?

Try1: I have set the value of n using:

iimSet("n",i);

and used like this:

SET !EXTRACT {{!COL{{n}}}}

This prints as _undefined_

Try2 I have set value like this:

iimSet("columnName","!COL"+i);

where i is iterated in for loop. and used like this:

SET !EXTRACT {{columnName}}

This prints only the !COL1, !COL2, !COL3 as text.

PFB my complete code:

var PickPackFilePath = "D:\\";
var PickPackData = "PickPackData.csv";

var initCSV; 
initCSV =  "CODE:";
initCSV +=  "SET !DATASOURCE " + PickPackFilePath + PickPackData + "\n";
initCSV +=  "SET !DATASOURCE_LINE 1" + "\n";
initCSV +=  "SET !EXTRACT {{!COL{{n}}}}" + "\n";

var i;
for(i=1;i<=6;i++)
{
    iimSet("n",i);
    iimPlay(initCSV);
    alert(iimGetLastExtract(1));
}

Please help.


Solution

  • You were very close to the right solution. Here it is:

    var PickPackFilePath = "D:\\";
    var PickPackData = "PickPackData.csv";
    
    var i;
    for(i=1;i<=6;i++)
    {
        var initCSV; 
        initCSV =  "CODE:";
        initCSV +=  "SET !DATASOURCE " + PickPackFilePath + PickPackData + "\n";
        initCSV +=  "SET !DATASOURCE_LINE 1" + "\n";
        initCSV +=  "SET !EXTRACT {{!COL" + i + "}}" + "\n";
    
        iimPlay(initCSV);
        alert(iimGetLastExtract(1));
    }