2

単一のjavascriptファイルで実行されるiMacroファイルがいくつかあります。

非常に基本的な、このように見えます。

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..
}

私は理解する必要があります:

  • urldata.csvから私のplayme.jsにデータをインポート/読み取る方法。どうやら、無料版の iMacros では jQuery が許可されていないため、これを使用することはできません。
  • 行 X の値が null 以外の場合にのみ iiPlay を使用する関数を作成する方法。

助けてください!:)

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 に答える