需要有关imacros的解决方案!DATASOURCE_LINE问题

时间:2015-03-12 18:48:42

标签: csv macros imacros

我有一个包含tv-series信息的csv文件,每个电视剧都有自己的宏。使用{{!COL1}}等我可以毫无问题地获取所有信息。 但是我需要一些帮助来解决下面的情况。

TV-series.csv

Game of Thrones, 2011, Season 2
The Walking Dead, 2015, Season 5
etc.

如果我想获得电视剧的标题,我只需使用{{!COL1}},并使用{{!COL2}}年份 但我有时会添加新的电视剧,并且它们的顺序会在csv文件中完全改变。然后我必须手动修改所有宏中的所有行#。

有没有办法根据firt列确定行号(例如权力的游戏)?信息不会改变,只是它们的行号会改变。对不起我糟糕的英语,我希望我能说出我的问题并需要一些建议。

到目前为止我的代码

VERSION BUILD=8910303 RECORDER=FX
TAB T=1
SET !DATASOURCE tv-series.csv
SET !DATASOURCE_LINE 2 => This # should change based on first column

TAG POS=1 TYPE=TEXTFIELD FORM=NAME:title ATTR=ID:titlebox CONTENT={{!COL1}}

1 个答案:

答案 0 :(得分:1)

使用命令'EVAL'和'switch'子句。举个例子:

...
SET !DATASOURCE tv-series.csv
SET !DATASOURCE_LINE 1
SET lineNumber EVAL("switch ('{{!COL1}}') {case 'Game of Thrones': s = 2; break; case 'Something Else': s = 5; break;  /* etc. */}")
SET !DATASOURCE_LINE {{lineNumber}}
...