2016-07-21 20 views
1

Ich suche nach einer Möglichkeit, einen Benutzer wählen lassen, welche Spalte seiner CSV-Eingabe das Skript im {{!COLn}} Teil verwenden sollte.iMacros: benutzerdefinierte Variablen innerhalb! COL?

PROMPT "Please enter CSV column:" !VAR1 

SET !DATASOURCE C:\User\Desktop\Test\testsource.csv 
SET !DATASOURCE_COLUMNS 100 
SET !DATASOURCE_LINE {{i}} 

URL GOTO=http://www.somewebsite.com 
TAG POS=1 TYPE=BUTTON ATTR=TXT:123:<SP>* 
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=* CONTENT={{!COLn}} 
TAG POS=1 TYPE=TD ATTR=TXT:{{!COLn}} 

n in !COLn soll die !VAR1 Variable definierten Benutzer eingestellt werden. Ich habe jetzt Ahnung wie! Danke für alle Ratschläge.

+0

ich würde vorschlagen, wenn möglich, alle in einem COL Ihre COL zu platzieren und dann die Datasource-Loop-Funktion, bei der definieren Sie Ihre Daten Zeile sollte genommen werden. Aber auf iMacros Forum ist ein kleiner Workaround http://forum.imacros.net/viewtopic.php?f=11&t=26316 – Tanckom

Antwort

1

Hier ist ein Makro, das mit den ersten 5 Spalten Ihrer Datenquelle funktionieren muss:

PROMPT "Please enter CSV column:" !VAR1 

SET !DATASOURCE C:\User\Desktop\Test\testsource.csv 
SET !DATASOURCE_COLUMNS 100 
SET !DATASOURCE_LINE {{i}} 

SET row "'{{!COL1}}', '{{!COL2}}', '{{!COL3}}', '{{!COL4}}', '{{!COL5}}'" 
SET col EVAL("var col = eval('[{{row}}]'); col[{{!VAR1}} - 1];") 

URL GOTO=http://www.somewebsite.com 
TAG POS=1 TYPE=BUTTON ATTR=TXT:123:<SP>* 
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=* CONTENT={{col}} 
TAG POS=1 TYPE=TD ATTR=TXT:{{col}} 

Sie sollten manuell bearbeiten Sie die Zeile SET row ... so, dass sie die ganze Reihe darstellen würde, dh sie enthalten alle '{{!COLn}}' getrennt mit Kommas. BTW, wenn die Anzahl der Spalten groß ist oder/und sich häufig ändert, rate ich, ein zusätzliches Makro zu schreiben, das diese Zeichenfolge für Sie generiert.

1

Keine einfache Antwort, aber Sie können eine PHP-Website (sogar kostenlos) erstellen, fügen Sie eine NXM-Matrix/Dataset hinzu und haben Sie eine einfache URL-Schnittstelle www.mysite.com/index.php?loop = {{! LOOP}} & col = {{! VAR1}} den Wert zurückkehren Sie

wollen