2

我有几个 iMacro 文件,它们使用单​​个 javascript 文件执行。

很基本,看起来像这样。

iimPlay("GoogleMacro.iim");
iimPlay("IBMMacro.iim");
iimPlay("IMDBMacro.iim");
iimPlay("AltavistaMacro.iim");
iimPlay("GametrailersMacro.iim");
iimPlay("MortalCombatMacro.iim");
iimPlay("WikipediaMacro.iim");

它被称为playme.js,效果非常好。

不过,我不想每次启动 .js 文件时都运行每个宏。

我有一个单独的 CSV 文件urldata.csv

URLINFO,URLINFO2,DATA1,DATA2
http://google.com,GOOGLE,"hello","thank you for searching" 
http://ibm.com,IBM,null,null
http://imdb.com,IMDB,null,null
http://altavista.com,ALTAVISTA,"rip","rest in peace, my friend",
http://gametrailers.com,GAMETRAILERS,null,null
http://mortalkombat.wikia.com,MORTALKOMBAT,null,null
http://wikipedia.org,WIKIPEDIA,null,null

我希望它工作的方式,在这种情况下(上面urldata.csv中的数据),.js 文件只会执行 GoogleMacro.iim 和 AltavistaMacro.iim

我正在寻找的规则:如果 COL3 的值为null,则不要 iimPlay,并检查下一个文件。

.JS 代码应该像这样工作(我很清楚这只是胡言乱语):

#Import urldata.csv

Loop whole CSV {
ROW2, If COL3 = null --> go to ROW3
else iimPlay("GoogleMacro.iim");
ROW3, If COL3 = null --> go to ROW4
else iimPlay("IBMMacro.iim");
Etc..
}

我需要弄清楚:

请帮忙!:)

4

2 回答 2

2

解决了!

将 .csv 更改为以下内容:

"http://google.com",GoogleMacro,"hello","thank you for searching" 
"http://ibm.com",IBMMacro,"",""
"http://imdb.com",IMDBMacro,"",""
"http://altavista.com,ALTAVISTAMacro","rip","rest in peace, my friend",
"http://gametrailers.com",GAMETRAILERSMacro,"",""
"http://mortalkombat.wikia.com",MORTALKOMBATMacro,"",""
"http://wikipedia.org",WIKIPEDIAMacro,"",""

并且在 .js 方面得到了一些非常好的帮助

var load;
load =  "CODE:";
load +=  "SET !DATASOURCE urldata.csv" + "\n";
load +=  "SET !DATASOURCE_COLUMNS 4" + "\n";
load +=  "SET !DATASOURCE_LINE {{i}}" + "\n";
load +=  "SET !extract {{!col2}}" + "\n";
load +=  "ADD !extract {{!col3}}" + "\n";

var siteName = "";
var siteContent = "";

//Change 4 to the number of websites
for(i=1;i<4;i++) {

  iimSet("i",i);
  // Load data
  iimPlay(load);
  siteName = iimGetLastExtract(1);

  // Check if the website has content
  siteContent = iimGetLastExtract(2);

  if(siteName != "Website" && siteContent != "") {
     iimPlay(siteName + '.iim');
  } else {
  }

 }
于 2013-07-12T13:09:25.893 回答
0

发出 GET 请求以获取 CSV 文件的内容(jQuery 可能对此有所帮助),然后使用 CSV 解析器(可能是https://stackoverflow.com/a/14991797/711902)解析文件,然后遍历每个行,如果它符合您的期望,则调用该函数。

jQuery.get('urldata.csv', function(response) {
    var data = parseCSV(response);
    for (var i = 1; i < data.length; i++) {
        var col3 = data[2], url = data[0];
        if (col3 != 'null') {
            var site = getSiteFromUrl(url);
            iimPlay(site + 'Macro.iim');
        }
    }
});

function getSiteFromUrl(url) {
    var site = url.match(/\/\/(.*)\./)[1];
    return site[0].toUpperCase() + site.substr(1);
}
于 2013-07-09T15:19:40.587 回答