@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
как преобразовать число в текст?
-
@corclubs said in как преобразовать число в текст?:
25 мая 2018 года
если формат будет дд.мм.гггг, то так
PropisData("25.05.2018")результат будет: двадцать пятое мая две тысячи восемнадцатого года
https://onlinegdb.com/SnDCDo7sM -
@corclubs said in как преобразовать число в текст?:
а как начать использовать данный код?
вставить код в действие "Выполнить код"
PropisData = function (data) //аргумент data должен быть строкой { //Проверка, соответствует ли дата формату ДД.ММ.ГГГГ if ( !/^\d\d\.\d\d\.\d\d\d\d$/.test(data) ) { return "не является датой по григорианскому календарю в формате ДД.ММ.ГГГГ"; } var d = +data.substr(0, 2), //день m = +data.substr(3, 2), //месяц y = +data.substr(6, 4); //год //Проверка, корректная ли дата по григорианскому календарю // До 1582 г. все года н.э., делящиеся на 4, считаются високосными, // после только те года, которые делятся на 4 и не деляться на 100 или делятся на 400; // если нужно учитывать високосные года до принятия григорианского календаря в России в 1918 г., // то замените в коде выражение "y < 1582" на "y < 1918". if (d == 0 || m == 0 || m > 12 || y == 0 || ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d > 31) || ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30) || (m == 2 && !(d < 29 || (d < 30 && y % 4 == 0 && (y < 1582 || y % 100 != 0 || y % 400 == 0)))) ) { return "не является датой по григорианскому календарю в формате ДД.ММ.ГГГГ"; } var Day1, Month1, Year1, Year2, Year3, Year4, Year5, Year6, Year7, Year8, yearPropis; Day1 = ["", "первое ", "второе ", "третье ", "четвёртое ", "пятое ", "шестое ", "седьмое ", "восьмое ", "девятое ", "десятое ", "одиннадцатое ", "двенадцатое ", "тринадцатое ", "четырнадцатое ", "пятнадцатое ", "шестнадцатое ", "семнадцатое ", "восемнадцатое ", "девятнадцатое ", "двадцатое ", "двадцать первое ", "двадцать второе ", "двадцать третье ", "двадцать четвёртое ", "двадцать пятое ", "двадцать шестое ", "двадцать седьмое ", "двадцать восьмое ", "двадцать девятое ", "тридцатое ", "тридцать первое "]; Month1 = ["", "января ", "февраля ", "марта ", "апреля ", "мая ", "июня ", "июля ", "августа ", "сентября ", "октября ", "ноября ", "декабря "]; Year1 = ["", "первого ", "второго ", "третьего ", "четвёртого ", "пятого ", "шестого ", "седьмого ", "восьмого ", "девятого "]; Year8 = ["", "одиннадцатого ", "двенадцатого ", "тринадцатого ", "четырнадцатого ", "пятнадцатого ", "шестнадцатого ", "семнадцатого ", "восемнадцатого ", "девятнадцатого "]; Year2 = ["", "десятого ", "двадцатого ", "тридцатого ", "сорокового ", "пятидесятого ", "шестидесятого ", "семидесятого ", "восьмидесятого ", "девяностого "]; Year3 = ["", "сотого ", "двухсотого ", "трёхсотого ", "четырёхсотого ", "пятисотого ", "шестисотого ", "семисотого ", "восьмисотого ", "девятисотого "]; Year4 = ["", "тысячного ", "двухтысячного ", "трёхтысячного ", "четырёхтысячного ", "пятитысячного ", "шеститысячного ", "семитысячного ", "восьмитысячного ", "девятитысячного "]; Year5 = ["", "", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто "]; Year6 = ["", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот "]; Year7 = ["", "тысяча ", "две тысячи ", "три тысячи ", "четыре тысячи ", "пять тысяч ", "шесть тысяч ", "семь тысяч ", "восемь тысяч ", "девять тысяч "]; y = y + ""; if (y.length == 4) //Проверка 4-х значных годов: 1000,1001,...,9999 { if (+y % 1000 == 0) { yearPropis = Year4[+y.substr(0, 1)]; //1000,2000,...,9000 } else if (+y % 100 == 0) { yearPropis = Year7[+y.substr(0, 1)] + Year3[+y.substr(1, 1)]; //1100,1200,...,9900 } else { yearPropis = Year7[+y.substr(0, 1)] + Year6[+y.substr(1, 1)]; if (+y % 10 == 0) { yearPropis += Year2[+y.substr(2, 1)]; } else if (+y.substr(2, 2) < 10) { yearPropis += Year1[+y.substr(3, 1)]; } else if (+y.substr(2, 2) < 20) { yearPropis += Year8[+y.substr(3, 1)]; } else { yearPropis += Year5[+y.substr(2, 1)] + Year1[+y.substr(3, 1)]; } } } else if (y.length == 3) //Проверка 3-х значных годов: 100,101,...,999 { if (+y % 100 == 0) { yearPropis = Year3[+y.substr(0, 1)]; } else if (+y % 10 == 0) { yearPropis = Year6[+y.substr(0, 1)] + Year2[+y.substr(1, 1)]; } else if (+y.substr(1, 2) < 10) { yearPropis = Year6[+y.substr(0, 1)] + Year1[+y.substr(2, 1)]; } else if (+y.substr(1, 2) < 20) { yearPropis = Year6[+y.substr(0, 1)] + Year8[+y.substr(2, 1)]; } else { yearPropis = Year6[+y.substr(0, 1)] + Year5[+y.substr(1, 1)] + Year1[+y.substr(2, 1)]; } } else if (y.length == 2) //Проверка 2-х значных годов: 10,11,...,99 { if (+y % 10 == 0) { yearPropis = Year2[+y.substr(0, 1)]; } else if (+y.substr(0, 2) < 20) { yearPropis = Year8[+y.substr(1, 1)]; } else { yearPropis = Year5[+y.substr(0, 1)] + Year1[+y.substr(1, 1)]; } } else { yearPropis = Year1[+y]; } return (Day1[d] + Month1[m] + yearPropis + "года"); } log (PropisData('25.05.2018'))
-
@corclubs Вот эту страку замени на свою переменную
log (PropisData('[[MOYA_PEREMENNAYA]]'))и вызывай этот кубик выполнить код, после того как поменяешь дату.
Если надо вернуть, то соответственно, замени вывод в лог на:
[[PROPIS]] = PropisData('[[MOYA_DATA]]') -
@bigorat said in как преобразовать число в текст?:
@Bigma точнее вот так
[[YOU_VARIADBLE]] = PropisData('[[MOYA_PEREMENNAYA]]')В таком случае вы передаёте в функцию не значение переменной, а просто текст
[[MOYA_PEREMENNAYA]] -
@Bigma said in как преобразовать число в текст?:
@Fox Плю́сы нужны? Я в Ява скриптах плаваю. Ты лучше сразу правильный пример приводи, быстрей научимся.
Передавать нужно переменную без кавычек
[[YOU_VARIADBLE]] = PropisData([[MOYA_PEREMENNAYA]]) -
@Bigma said in как преобразовать число в текст?:
@Fox а ну да, ковычки стрингуют. Слушай, а вот не по теме. В действии запретить запрос правильно так
*moysite.ru*Или все же так
.*moysite\.ru.*???
Действие "запретить запрос" не использует регекспы, допускается только знак
*для обозначения маски запроса.Значение квантора
1 или более, то есть для ссылкиhttps://www.google.comсработает маска
*google.comи не сработает маска
*google.com*
