var rowslength=1 for (i=1;i<=rowslength;i++) { var q; q= "CODE:"; q+="SET !DATASOURCE_DELIMITER ;" + "\n"; q+= "SET !DATASOURCE C:\\Users\\M\\Documents\\iMacros\\Datasources\\1.txt" + "\n"; q+="SET !DATASOURCE_COLUMNS 3" + "\n"; q+= "SET !DATASOURCE_LINE "+i+ "\n"; q+= "ADD !EXTRACT {{!COL1}}" + "\n"; q+= "ADD !EXTRACT {{!COL2}}" + "\n"; q+= "ADD !EXTRACT {{!COL3}}" + "\n"; iimPlay(q) var q1= iimGetLastExtract(1) var q2= iimGetLastExtract(2) var q3= iimGetLastExtract(3) }
Отсутствует
для JS так
var aaa="тут содержимое файла"
var tmp=aaa.split("\n");// нарезаем данные в массив по символу перевода строки - \n
alert(aaa.lenght) - длинна массива = колчество строк.
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
читай справку по имакросу.
считываешь файл в переменную и потом делаешь с ней то что я написал выше.
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
читай справку по имакросу.
считываешь файл в переменную и потом делаешь с ней то что я написал выше.
Спасибо за подсказку, разобрался. Помоему будет смысл эту переменную ааа использовать дальше... без замедлений скорости... а возможно ли обращаться к отдельным элементам массива?
Добавлено 09-03-2017 06:17:10
к той же самой первой колонке например?
Отредактировано Бек (09-03-2017 06:17:10)
Отсутствует
zzz[0] первый элемент массива
zzz[1] второй
итд вместо цифры можно юзать переменную
зы извиняюсь что ввёл тут в заблуждение (только сейчас заметил)
var tmp=aaa.split("\n");// нарезаем данные в массив по символу перевода строки - \n
alert(aaa.lenght) - тут конечно же tmp.lenght - нам же массив нужен а не переменная непорезанная
кстати
var xxx="abcde"
alert(xxx[3]) выведет d
Отредактировано okkamas_knife (09-03-2017 09:50:21)
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
okkamas_knife
удалено, избыточное цитирование
многое проясняется, но многое еще не понятно))). с массивом более или менее ясно... записал один раз и обращаешься потом-быстрее. а вот как обратно закинуть в txt элементы, для конкретного случая те же q1 q2 и q3 и если я в тот же файл буду вносить у меня же ошибки не будет...типа файл используется... или массив изменился?
InfSub
Отсутствует
то что считал остаётся в памяти независимым отдельным объектом
так что если внёс в файл изменения то ессно надо перечитать его.
если надо занести массив с изменениями в файл
то
var out=""; for (var i = 0; i < massiv.length ; i++){ out=out+massiv[i]+"\n";//добавляем очередную строку из массива и перевод строки };
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
таааак....буду разбираться с синтаксисом на практике... для записи append наверное.... и вот подскажите по логике, если взять к примеру так называемый "чекер"-для проверки валидности, работоспособности. пробежался по всем...невалидным, присвоил например 0(ну или удалил, пока незнаю)... а как вот определить валидность? т.е. я это представляю так-пробуешь логиниться, если залогинился появилась кнопка "выход"-валид, если нет то "удалить". может есть какой нибудь другой метод или все правильно?)
Отсутствует
.буду разбираться с синтаксисом на практике
1 есличто все мои примеры - javascript/
2 насчет синтаксиса - справочники коих полно что по js что по имакросу + примеры + гугл
вот увидел в коде split - гуглишь javascript+split+пример
не знаешь как сделать чтото - сначала сформулируй четко и потом гугли
3 правильно представляешь
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
okkamas_knife
удалено, избыточное цитирование
ну в общем разобрался, немного- очень удобно!!! еще и оказывается, по тому же принципу можно и функции использовать- замутил сверху, а потом используешь везде. но чета все равно косяки непонятные...
var zzz='содержимое1' var xxx='содержимое2' for (i=0;i<length;i++){ content=zzz[i]; content1=xxx[i]; var c=('tag pos=1*') if (c===1){append} // тут не знаю как по другому реализовать, ориентируюсь просто на кнопку, без текста
InfSub
Отсутствует
непонятно что хочешь получить в итоге.
принцип таков
1 чётко формулируешь хотелку со всеми нюансами и мелочами
2 расписываешь алгоритм получения хотелки, проходишься по нему причем с учетом различнх моментов типа а что будет если а больше б а что если наоборот итд итп
3 и только отработав алгоритм начинаешь воплощать его в код.
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
okkamas_knife
удалено, избыточное цитирование
Хочу иметь непрерывную работу скрипта по смене юзер агента и прокси. у меня есть 500 юсер агентов в 1.csv и 5000 прокси в 2.csv. меняю через конфиг. Я подгружаю агенты в массив zzz, а прокси в xxx. и прогоняю их одним циклом. тут после каждой загрузки, получается, надо чекать...прокси заведомо хорошие... если не рабочие, как юзер так и прокси страница не загрузится, я так понимаю. Если страница загрузилась идем дальше, если нет i=i+1. вроде все... дошли до последнего юзер агента и тут надо начинать сначала именно по юзерам т.е. if i=zzz.length then i=0, но тогда же и прокси начнутся с первого...вот тут и не могу понять логику, что делать нужно чтобы прокси продолжили с 501, а юзеры с 0
замечание
InfSub
Отсутствует
вот тут и не могу понять логику, что делать нужно чтобы прокси продолжили с 501, а юзеры с 0
теперь понятно
самый простой быдлокодерский вариант сделать массивы равными по длинне
ua - массив юзерагентов
var ual=длинна массива юзерагентов
var counter=0
var uanew=[];
for (i=0;i<длинна массива прокси;i++){
if (counter<ual){ проверяем счетчик если в пределах то
uanew.push(ua[counter]) добавляем в новый массив очередного юзерагента
counter=counter+1 увеличиваем счетчик
}else{counter=0;} иначе обнуляем счетчик
}
и такстолько раз сколько элементов в массиве проксей.
минус - больше памяти
плюсы проще код и меньше циклов и условных переходов
потом просто юзаешь proxy[i] и uanew[i]
в принципе аналогично можно сделать и в основном
то есть основной цикл с i для проксей
а для юзерагентов завести отдельный счетчик со сбросом по достижении размера
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
самый простой быдлокодерский
он мне подходит, пока)
с траблами, как всегда.
Отсутствует
а может быть как то к значению ошибки можно обратиться
а почитать FAQ не?
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
а почитать FAQ не?
решил все таки функцию сделать, много "чеков". кстати, если правильно читал, FAQ был полезен, но все равно удалено, 3.3 ненормативная лексика, че тут не так
function IsTest(selector) { var k=0; var elems = document.querySelectorAll(selector); if (elems!=null) {k=1} return k;} IsTest('input[type="submit"]')=m alert (m)
InfSub
Отредактировано Бек (12-03-2017 12:06:29)
Отсутствует
Бек
RTFM по js
function IsTest(selector) {return Object.keys(window.document.querySelectorAll(selector)).length;}; m=IsTest('div[id="p732897"]'); alert(m); m=IsTest('div[id="p732897000"]'); alert(m);
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
RTFM по js
пробую, пока с переменным успехом. Уже второй день не могу понять, к чему привязывается "обновление" значения в "input". т.е. заполняю форму, например для мэила и если значение в форме "правильное" (например имя-'Вася'), то должен меняться код-'...success...' для конкретного случая. если нажать на мышь в произвольном месте, то все хорошо-работает. попробовал сделать .click(), но не то.
Отсутствует
всем, привет! Надеюсь у вас все хорошо, как минимум лучше, чем у меня с js. В общем следуя вашим рекомендациям получилось-таки написать скрипт, мой первый скрипт, всего за месяц. Вроде работает, нормально, потом ненормально...опять нормально...и так по кругу. определить в чем проблема-тяжело. поэтому хотелось бы получать обратную связь от скрипта, чтобы фиксить, то что неправильно работает, хотя бы пытаться. хочу реализовать это(обратную связь) через iimDisplay-буду кидать туда то что мне надо и то что выдает сам макрос тоже буду видеть(в основном он выдает траблы, как мне кажется). но могу ли я как то сохранять содержимое окна? пытался так реализоватьЖ
function WriteLog() { var Cc=Components.classes, Ci=Components.interfaces, LofFile='C:\\log.txt'; var pref=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); pref.getCharPref("???", LogValue); //пытаюсь по имени настройки считать "значение" и присвоить переменной LogValue, но имени не знаю imns.FIO.appendTextFile(imns.FIO.openNode(LogFile),LogValue) }
Отсутствует
Бек
если вы пытаетесь отловить ошибки iMacros (а из вашего пространного монолога - очень сложно понять, что же именно вы пытаетесь поймать...), то iimGetErrorText() без каких-либо pref.getCharPref("???", LogValue);
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
iimGetErrorText()
Понял-для поиска ошибок есть свои методы, не извращаться, спасибо(не пишу сразу, дабы не флудить, но благодарности моей нет предела, Вы-лучший )!
там, кстати, проблема была из разряда var q='кто дурак'; var q='js'.
больше так делать не буду!
переделываю, задача:все так же смена юзера- айпи, данные для замены из файла и без "window.q".
проблемы: changeProgy, предположительно, работает неправильно-1.бежит по всем возвращает последний cheker, понимаю, что замкнуть надо, но как это делается не пойму; 2. не уверен, что она будет выполнять свою основную функцию-смену прокси, хотя скорее да и опять же будет последнее значение; 3. пугающая меня до жути, чтобы вызвать ее, очень много параметров надо передать-запутаться "два пальца"
подсобите, как можно исправить проблемы, для кого то проблемки. и если не сложно дайте ссылку на готовый-хороший-ненужный код, не могу найти. спасибо, буду очень признателен! и, если есть еще какие либо "глобальные", не опечатки, проблемы, тоже, пожалуйста сообщите.
function () { for (var i = 0; i < this.readFile.str.length; i++) { var ip = this.readFile.str[i]; var Cc = Components.classes, Ci = Components.intereadFileaces; var pref=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); pref.setIntPref("network.proxy.type", 1); pref.setBoolPref("network.proxy.share_proxy_settings", true); pref.setCharPref("network.proxy.http", ip); var cheker = this.checkProxy; } return cheker;
Отредактировано Бек (07-04-2017 12:30:12)
Отсутствует
дайте ссылку
В FAQ есть обучающее видео, в том числе по работе с прокси
Плюс поиск по разделу imacros по слову proxy, на сколько я помню, где-то обсуждалось, скорее всего в теме про капчи
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует