Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Как читать файл в процессе выполнения скрипта, а не при начальной загрузке
-
Всем привет. Есть вопрос по работе с он OnApplicationStart. Допустим я в данной функции обрабатываю почту и сохраняю индексы писем которые мне нужны в файл indexofmail.txt. Дальше запускается основной скрипт в многопотоке, который должен считывать этот файл indexofmail.txt и скачивать письма(и дальнейшие действия). Но вся проблема в том, как я понял, что начально файл пустой и функция Мейн берет данные с пустого файла при самом запуске, а не данные которые уже были туда записаны.
Также если мне в процессе нужно будут некоторые буферные данные, которые в процессе исполнения скрипта будут пополнятся и должны оттуда считываться....
Как с этим работать, чтобы данные реал тайм считывались? -
@DrPrime Так я просто там не вижу, что использовать, чтобы оно в многопотоке работало, читать файл? так это совсем не то. Весь смысл многопотока, чтобы считывало файл поэлементно. Теми ресурсами что в разделе "файловая система" никак не реализуешь.
-
Ну лично я понимаю, что функция OnApplicationStart, служит для обработки данных перед основным скриптом, и получить данные можно только в список или переменную....но список и многопоток как то не очень "дружат". Для многопотока нужна работа с "ресурсами".
-
@DrPrime большое спасибо. Действительно, это все сработало, но как на меня, это очень увеличивает время работы. Если там данных мало, то форич в ресурс будет не очень долгим.....но если там 10000 и больше елементов....так это можно чёкнутся. Еще раз спасибо за потраченное время на пояснение. Если бы можно было бы сразу обрабатывать данные, как на меня, было бы логичнее и проще. Ну это все на усмотрение разработчика. Потому что я не программист и просто следую логике среднестатистического юзера.