Помогите разобраться.
Требуется прочитать первую строку из тхт файла и вставить ее в форму. Затем прочитать вторую строку и вставить ее в другую форму. Затем третью и четвертую строку и так далее.
VERSION BUILD=9030808 SET !ERRORIGNORE YES SET !DATASOURCE C:\\iMacros\\Macros\\тест\\nt.txt SET !DATASOURCE_LINE {{!LOOP2}} SET !LOOP 1 URL GOTO=https://account.mail.ru/signup?from=navi&lang=ru_RU&siteid=169&rnd=3052698 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:signup ATTR=NAME:firstname CONTENT={{!COL1}} SET !LOOP 2 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:signup ATTR=NAME:lastname CONTENT={{!COL1}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:signup ATTR=NAME:firstname CONTENT= TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:signup ATTR=NAME:lastname CONTENT=
InfSub
Отсутствует
VERSION BUILD=9030808
установите версию 8.9.7, являющуюся самой стабильной на данный момент и запретите обновление - дабы избежать большинства глюков данной версии
SET !ERRORIGNORE YES
удалите эту строку для отладки и обнаружения ошибок, например:
{{!LOOP2}}
такой переменной не может существовать в принципе
SET !LOOP 2
читайте что такое !LOOP и как он работает, явно не так как вы пытаетесь его использовать
к сути вопроса: а собственно где в коде 3 и 4 строка, я вижу повторение 1 и 2
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
держи функцию, в цикле к ней обращаешься и по строчно выдергиваешь строки
function ReadFile(zpar1,zpar2){ //par1 - номер строки которую надо считать //par2 - полный путь до файла if (zpar2 ==""){return false}; for(yq=1;yq<=50;yq++){ iimPlayCode('SET !DATASOURCE '+zpar2+'\nSET !DATASOURCE_LINE '+yq+'\nSET !EXTRACT {{!COL1}}'); var a=iimGetExtract(); text=a.split('\n'); if (yq==zpar1){return text}; } return; }
Отсутствует
Scorp1978
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Scorp1978
alert(ReadFile(1,' ')); // не работает alert(ReadFile(10,'c:\1.txt')); // опять не работает alert(ReadFile('','c:\\1.txt')); // и так не работает alert(ReadFile(10,'c:\\1 1.txt')); // и снова не работает alert(ReadFile(100,'c:\\1.txt')); // и вновь что-то не так ... вот не задача-то
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub, да понял я, понял. Ну что было тем и помог. вот если бы кто подсказал универсальную функцию которая работала бы со всеми вариантами, сразу бы обновил у себя.
Отсутствует
Scorp1978
что мешает исходя из приведенных мной примеров, исправить хотя бы банальные ошибки?
Добавлено 13-06-2018 15:26:50
тем более, половина примеров сделана только потому, что вы пытаетесь проверить входящие данные, вот только делаете это либо коряво, либо частично
Добавлено 13-06-2018 15:30:33
вот к примеру, мне нужна 51 строка, почему же она ни когда не будет получена из вашей функции? или это free-версия и работает она только с первыми 50 строками? и зачем мне перебор всех 50 строк перед этим? для того чтобы точно сказать, что 51 строка не найдена, даже если она есть?
Добавлено 13-06-2018 15:33:06
про то что csv может содержать, к примеру 2 и более столбцов данных, вы видимо тоже не слышали
Добавлено 13-06-2018 15:35:00
вот если бы кто подсказал универсальную функцию которая работала бы со всеми вариантами, сразу бы обновил у себя.
читайте форум, уже давно приведен пример универсальной функции, не использующей имакрос для чтения данных из csv
да и на основе имакроса, при желании, можно написать более красивую функцию, нежели это
Отредактировано InfSub (13-06-2018 15:35:00)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Как вариант
var locPath = "C:\\test.txt";//Полный путь до файла /********************************* описание функции *********************************/ var readFile = path => imns.FIO.readTextFile(imns.FIO.openNode(path)).match(/^.+/mg); /********************************** вызов функции ***********************************/ var arr = readFile(locPath);//Вернёт массив всех не пустых строк из файла window.console.log(arr); var str_1 = readFile(locPath)[0];//Вернёт первую строку из файла window.console.log(str_1); var str_2 = readFile(locPath)[1];//Вернёт вторую строку из файла window.console.log(str_2); var str_3 = readFile(locPath)[2];//Вернёт третью строку из файла window.console.log(str_3); //и т.д.
Отсутствует