【问题标题】:imacros. Need to extrapolate random values from one column宏。需要从一列推断随机值
【发布时间】:2013-09-22 15:47:21
【问题描述】:

我有一个从 csv 文件中获取数据的 imacros 脚本。但我需要告诉 imacros 从列中随机获取数据。即:

=ID:tag_editor_input CONTENT={{!COL2}}
=ID:tag_editor_input CONTENT={{!COL2}}
=ID:tag_editor_input CONTENT={{!COL2}}
=ID:tag_editor_input CONTENT={{!COL2}}
=ID:tag_editor_input CONTENT={{!COL2}}

在第 2 列中,我存储了很多值,但我需要为每一行获取与 COL2 不同的值。 有可能吗?


回复 Bestmacros。

感谢 Bestmacros,但我想我仍然做错了什么,因为它不起作用。所以这是脚本:

SET !VAR0 901
ADD !VAR0 {{!LOOP}}
SET !DATASOURCE_DELIMITER ; 
SET !DATASOURCE file.csv
SET !LOOP 1
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:post_three CONTENT=http://www.{{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
TAG POS=1 TYPE=TEXTAREA FORM=NAME:source ATTR=ID:htmlSource CONTENT={{!VAR0}}&#160;<a<SP>href="http://www.{{!COL3}}"<SP>target="_blank">www.{{!COL4}}</a>

如您所见,我需要 5 个标签中来自 col2 的随机值。其他列必须只有一个值。 考虑到整个脚本必须重复多次(循环中)并且每次 VAR0 必须增加 1,我应该在哪里插入代码?

【问题讨论】:

    标签: csv scripting firefox-addon imacros extrapolation


    【解决方案1】:

    是的,这是可能的 - 这是一个示例,它将从前 10 行(来自第 2 列)中获取随机数据

    SET !VAR0 901
    ADD !VAR0 {{!LOOP}}
    SET !DATASOURCE_DELIMITER ; 
    SET !DATASOURCE file.csv
    SET !LOOP 1
    SET !DATASOURCE_LINE {{!LOOP}} 
    TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:post_three CONTENT=http://www.{{!COL1}}
    SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
    SET !DATASOURCE_LINE {{!VAR1}} 
    TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
    SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
    SET !DATASOURCE_LINE {{!VAR1}} 
    TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
    SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
    SET !DATASOURCE_LINE {{!VAR1}} 
    TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
    SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
    SET !DATASOURCE_LINE {{!VAR1}} 
    TAG POS=1 TYPE=INPUT:TEXT FORM=ID:edit_post ATTR=ID:tag_editor_input CONTENT={{!COL2}}
    SET !DATASOURCE_LINE {{!LOOP}} 
    

    【讨论】:

    • thx 但是如果我已经用循环设置了 datasoource_line 怎么办,因为我需要它来处理其他东西? SET !DATASOURCE_LINE {{!LOOP}}
    • 所以从 col1 取随机值后重新设置
    • 更新了我的答案 - 您必须从示例中了解它的工作原理。
    • 非常感谢!我想我明白了。只要我获得 15 声望并且可以投票,我就会投票给你的答案。
    • @hugester.com 现在你有 15 个声望 :) 。如果此答案有效,您还需要单击投票数下方的隐藏 V 检查。这样您就可以将其标记为您问题的正确答案。
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2015-03-11
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多