Кто-то (не Владимир ли) жаловался, что завершение скрипта не всегда корректно даже с очисткой в OnStop, вот здесь показано, как завершать скрипт в несколько шагов, но на примере завершения в мейне. Для скрипта с окнами логику надо будет "выворачивать". То есть это все еще не более чем моделька, на универсальность не претендующая.
Насчет соревнований сильно сомневаюсь, тут все завалено задачами, за эту я скорей в качестве прокрастинации схватился.
Повторюсь еще раз. Есть программы типа велслаба, сьерры, мультичартса, нинзи и других. Смысл начального тестирования идей прямо в квике от меня ускользает, в нем нет для этого ничего. Отобранные во внешней программе стратегии можно перенести на луа, а можно саму программу к квику прицепить. Второе не проще, но нужно сделать один раз. Да и для некоторых программ уже есть готовые адаптеры к квику.
Евгений написал: Вот я и говорю что ты хочешь халявы нет у тебя денег и платить ты не хочешь
Цитата
БорисД написал: Anton , спасибо за то что отозвались на предложение Владимира и решили свои мятые 300 внести в общее дело ( надеюсь что они виртуальные и возвращать их не прийдется ??? )
БорисД написал: БЕСПЛАТНАЯ И В БЕСПЛАТНОМ ДОСТУПЕ ДЛЯ ПРИМЕНЕНИЯ ЛЮБЫМ ЖЕЛАЮЩИМ
Хочешь бесплатного? Боря коммунизм в России закончился так и не начавшись в 91. Ты я гляжу склонен к коммунистическим идеям пропагандистским лозунгам: бесплатно , равенство , братство. Хочешь бесплатно: сделай это сам, потратишь только время и деньги на еду и электричество. А вот твои коммунистические уловки тут не прокатят, потому что для многих это бизнес и этот форум не предназначен для того что ты хочешь.
Anton написал: Насчет соревнований сильно сомв обсужд в неваюсь, тут все завалено задачами, за эту я скорей в качестве прокрастинации схватился.
а никто и не заставляет ...... есть время и возмоность то вложи свои 300 мятых . иначе жди момент когда найдешь время это сделать че= - у нас здесь нет принуждений ..... не хочешь - не учасивствуй а хочешь то вливайсея и спорь и обусждай ...... не нравится хозяин темы , то , то открой новую тему и пытайся там понравиться интернет сообществу .....иначе ...... ищи новую и новую тему где соглашатся тебя слушать .
владимир не прав изначально в том что он не прав в своей попытке сделать доброе дело ..... но он уникум который готов делиться своими мозгами и денег за это не просит и готов делиться бесплатно своими знаниями и опытом ,,,,,,, других таких как он нам нужно здесь поискать и отловить их подобную халяву -----попытка передать свой опыт и знания-, нет ... это не халява а передача знаний и безценного опыта ..... а возвращаясь к халяве ---- лохов здесь нет но попытаться их найти никто не запрещает.
БорисД написал: БЕСПЛАТНАЯ И В БЕСПЛАТНОМ ДОСТУПЕ ДЛЯ ПРИМЕНЕНИЯ ЛЮБЫМ ЖЕЛАЮЩИМ
Хочешь бесплатного? Боря коммунизм в России закончился тане для тебя.... здесь нет лохов к и не начавшись в 91. Ты я гляжу склонен к коммунистическим идеям пропагандистским лозунгам: бесплатно , равенство , братство. Хочешь бесплатно: сделай это сам, потратишь только время и деньги на еду и электричество. А вот твои коммунистические уловки тут не прокатят, потому что для многих это бизнес и этот форум не предназначен для того что тыуспел пожить и при хочешь.
Женя ..... я жил в СССР долго и нудно и хотел бы снова туда врнуться и снова там пожить , . я успел пожить и при путинской власти и у меня есть что и с чеи срвнивать. Я у тебя спрашивал что именно тебя из моего жизненноного опыта тебя интересует ???? Но ты чудило изначально заточенное на получение сверх прибыли..... но поверь что этот сайт повидимому не для таких как ты создавался и не пытайся победить эти принципы и наладиться халяво й от лохов ...... на этом сайте лох ты и лично я благодарен твоему троллингу так как именно такие лохи как ты помогают мне поднимать рейтинг этой темы . Ты главное продолжай и не останавливайся меня тролить так как благодаря тебе идиоту эьа моя тема набирает популярность ... и помни что я с нетерпением жду твоих дебелизмов так как сплю и вижу увеличение посещаемости этой темы . И конечно как и прежде жду с нетерпением .... ты даже можешь начать писать мне в личку чтобы я имеел возможность насладиться твоим троллингом. ....... и это. ты главное не молчи и пиши муйн темы ю в этой теме чтоб мы не скучали и рейтинг этой темы не падал.
БорисД написал: БЕСПЛАТНАЯ И В БЕСПЛАТНОМ ДОСТУПЕ ДЛЯ ПРИМЕНЕНИЯ ЛЮБЫМ ЖЕЛАЮЩИМ
Хочешь бесплатного? Боря коммунизм в России закончился тане для тебя.... здесь нет лохов к и не начавшись в 91. Ты я гляжу склонен к коммунистическим идеям пропагандистским лозунгам: бесплатно , равенство , братство. Хочешь бесплатно: сделай это сам, потратишь только время и деньги на еду и электричество. А вот твои коммунистические уловки тут не прокатят, потому что для многих это бизнес и этот форум не предназначен для того что тыуспел пожить и при хочешь.
Женя ..... я жил в СССР долго и нудно и хотел бы снова туда врнуться и снова там пожить , . я успел пожить и при путинской власти и у меня есть что и с чеи срвнивать. Я у тебя спрашивал что именно тебя из моего жизненноного опыта тебя интересует ???? Но ты чудило изначально заточенное на получение сверх прибыли..... но поверь что этот сайт повидимому не для таких как ты создавался и не пытайся победить эти принципы и наладиться халяво й от лохов ...... на этом сайте лох ты и лично я благодарен твоему троллингу так как именно такие лохи как ты помогают мне поднимать рейтинг этой темы . Ты главное продолжай и не останавливайся меня тролить так как благодаря тебе идиоту эьа моя тема набирает популярность ... и помни что я с нетерпением жду твоих дебелизмов так как сплю и вижу увеличение посещаемости этой темы . И конечно как и прежде жду с нетерпением .... ты даже можешь начать писать мне в личку чтобы я имеел возможность насладиться твоим троллингом. ....... и это. ты главное не молчи и пиши муйн темы ю в этой теме чтоб мы не скучали и рейтинг этой темы не падал.
писал ответ дебилу Жене ( пользователю сайта Евгений ) и при этом столько очепяток совершил что мой текст и мне самому стыдно перечитывать из за мной допущенных в тексте ошибок и опечаток ......... надеюсь только на одно ... что наш постоянный посетитель этой темы и наш дебилоид Евгений этого не заметил ( ведь дебилоидам этого не дано ) Женя ты как троль наверняка не читаешь мои тексты , и надеюсь что не перестанещь посещать и писать в этой теме . Поверь мне на слово ..... как дебилоид ты для меня и моей тмы здесь очень важен и без тебя . дебилоида я уже не вижу смысл моей а жизни и поддержиать активность в этой теме .
Евгений, надеюсь что в отличии от меня хоть ктото из нас является дебиилоидом из Тюмени , как я понял ты оттуда , хотя что тут понимать ..... таких дебилоидов как ты полно во всех местах нашей огромной по размеру страны .
Но уважаемый Евгений прошу тебя приехать ко мне в гости на ПМЖ в город Великий Устюг так как таких дебилоидов как ты в нашем регионе очень мало и очень важно усреднить статистику переписи населения затеянную нашими президентом чтоб наш региоон не выделялся по этому показателю из средней статистики по стране.
Евгений написал: Тех поддержка ! Удалите пожалуйста этого клоуна БорисД и эту тему с форума, нам тках здесь и тырнета ут таких демагогов и баламутов не ненинаадо
Жень ..... ну не думал я что ты такой конченный демагог и баламут . Я конечно уже выяснил что ты конченный дебилоид , но что в такой степени ..... таких как ты банить нельзя ... ведь только на вас троллях и дебилоидах держится посещаемость сайтов. Так и хочется сделать предложение Путину чтобы он вам дебилоидам памятники ставил , сожалею что Путин не планирует снова ко мне в Великий Устюг на отдых заскочить , но ради таких как ты дебилоидов я могу и сам в Кремль к Путиневил как это делали в СССР с прообразом Ленина. оК и скинь мне свое фото ....... и памятник дебелизму по твоим фото мои скульпторы нарисуют один в один и я не пожалею денег чтобы увековечить дебели и образ и как памятник и чтобы твоим образом и по твоему фото ...... я однозначно тебя прославлю на всех ветках и не только этого сайта ...и даже как ДЕБИЛОИДА мирового уровня тебяпрославлю. ...... еще раз в этой теме напишшь то мои програмисты тебя найдут по твоему ID и потом начнутся черныее дни для тебя Дебилоида !!!!
Евгений написал: Тех поддержка ! Удалите пожалуйста этого клоуна БорисД и эту тему с форума, нам тут таких демагогов и баламутов не надо
Тех поддержка ! Пожалуйста не удаляйте темы и сообщения этого Дебилоида Евгения , ведь впереди у на ближайшую недас короноврусные локдауны на и этот дебилоид Евгений хоть как то сможет нас развлекать своими претензиями к вам и к нам Зараннее спасибо за ваше понимание этой щекотливой ситуации.
А почему бы Вам просто не перенести обсуждение в другое место. И вопросов не будет. Кто захочет, присоединится к общению.
Это относится и ко всем, кто хочет создать здесь тему для обсуждения. Напоминаю, что раздел форума "Программирование на языке Lua". Т.е. ожидаются вопросы по написанию кода, выявленных ошибках qlua. А найти специалиста - это не об этом. Итак в последнее время все больше стало абстрактного обсуждения, вместо конкретики.
Владимир написал: БорисД, Ого разговорились! Ладно, пока не до этого - попозже почитаем, что тут: деловой разговор или визги поросячьи. ::
Любезный не уменьшайте значимость этой темы для этого сайта..... кснова отвечу и разакие нахрен визги поросячьи ??? Тут наш любимый троль и дебилоид под ником Евгений готов вас на части порвать за попытку создать бесплатный для всех скрипт . ща я ему снова отвечу и раззодорю на бесконечный посщения этой темы для раскрутки и её популяризации на этом сайте.
Поэтому Владимир и Антон извините ........ ваши скрипты в этой теме ни что по сравнеию с вылитым дерьммом от Евгения на вас и на меня как создателя ветки . ведь в любом пиар в проекте главное не успешные проекты а скандалы вокруг них ...... нам бы в тему ещё одного подобного Евгению и потом реклама от их грязи превысит рейтиг и прибыльность от посещаемости .
Для меня как раз наоборот. dofile живет в глобальном контексте, что неудобно. По сути это предкомпилированная блок кода. При этом вместо require можно использовать конструкцию типа:
Код
local lib = load(file_path)()
что, по сути, равносильно dofile, но имеет преимущества. Как минимум, можно получить код ошибки при загрузке модуля, если таковая есть. Например, переопределив dofile так
Код
function dofile (filename) local f = assert(loadfile(filename)) return f()end
Насчёт констант и вообще мнемоники я согласен, но это не моё - мне всё равно как что называть. В своём любимом С я использую для этого #define или enum, а здесь... не заслуживает этот язык такого уважения. Кстати, что за зверь flush и на кой он нужен? А onMainInit зачем? Почему этого не сделать прямо в main? OnInit я сразу же похоронил. Оккам также запрещает пользоваться error и pcall.
Идея с runStatus интересная - у меня похожая техника применяется для всплывающих меню. Но я не совсем врубился, что происходит. Можно описание процесса на русском языке?
Нет, я просто не хотел что-либо делать в OnStop - меня как программиста просто корёжит от такой "технологии". Но что делать? Сначала я пытаюсь разобраться с файлами, и здесь сбоев не случается, а потом пытаюсь убить открытые таблицы, и здесь уже пофиг, закроются они или нет. А вот когда сам Квик падает, причём в самых безобидных ситуациях - тут уже "против лома нет приёма".
БорисД, Достойно это соревнование организовать, ч одной стороны, очень просто (достаточно наделить хозяина ветки правами модератора этой ветки, как это сделано, например, в Фейсбуке), с другой - этого не будет сделано никогда.
Евгений, Лапуль, Вы мне уже надоели. У Вас просто НА ЛБУ написано, что Вы есть полуграмотный неуч, который пыжится корчить из себя что-то состоятельное. Уймитесь по-хорошему, пожалуйста.
Nikolay, А Вы правила читали? Цитирую: Обращаем Ваше внимание, что мы не занимаемся написанием скриптов для клиентов, такова позиция Компании, поэтому обращаться к нам с такими просьбами смысла не имеет. Однако мы не запрещаем искать такого рода услуги у нас на Форуме, подобного вида темы/сообщения не возбраняются. Эта ветка как раз одна из немногих, которая почти идеально подходит к разделу "Программирование на языке Lua".
БорисД, Да я гонял троллей годами и стадами - у меня даже "методика вытравливания головожопых" имеется (на сайте у меня есть). А такой "пиар" привлекает не тех, кого хотелось бы видеть.
Владимир написал: БорисД , Да я гонял троллей годами и стадами - у меня даже "методика вытравливания головожопых" имеется (на сайте у меня есть). А такой "пиар" привлекает не тех, кого хотелось бы видеть.п
вообще то я ему пишу не для того чтобы вы читали или отвечали а для того чтобы он почуствовал свою значимость в этой теме и продолжил меня троллить , а лично вас Владимир это не касается иак как он троллит только меня и поэтому мне это стало интересно и уже потому что я этогго дебилоида хочу раскручивать на общение и с конечной целью чтобы его ВКЛЮЧИИ В КНИГУ РЕКОРДОВ и конечно не книгу рекордов гинеса а в книгу дебилоидов - рекордсменов по троллингу ... к сожалению сейчас выходной и я не хочу просить проснуться моих знакомых прогеров ради того тобы по его ID выяснить что это за чмо тут в теме спамит и троллит ?
УППСС . а прикидываешь Владимир как ты прав ??? и я вдруг только что решил не выяснять кто он и каким чмошником является - мой спортивный интерес взял верховенство и я уже жажду от него новых постов , ведь они действительно рейтинг темы поднимают. Поэтому нахрена мне с ним воевать ???? я хочу с ним подружиться и как можно дольше внутри этой темы его троллить , , поверь мне на слово что он нам нужен для раскутки этой темф.
Ну кто из нас троль это видно по времени регистрации на данном форуме, кол-ву заданных вопросов по Lua в этой ветке и кол-ву предложений для разработчиков для Quik и созданных тем по делу с кодом на Lua.
То что ты подружился тут с Владимиром, дак он такой же троль и скандалист как ты. Вопросов и предложений минимум если они вобще есть, зато пустых разговоров сотни, и да начни уже наконец смайлики ставить, будешь вобще неотличим от Владимира, такую же пургу пишешь
А так в понедельник тебя снесут даже не сомневайся.
Anton, спасибо за предоставленный скрипт по очистке при завершении.
Можете объяснить зачем нужны строки, которые я закомментил в вашем скрипте?
Код
function OnStop()
assert(runStatus == 3, "Unexpected runStatus in OnStop: " .. runStatus)
runStatus = runStatus - 1
while runStatus == 2 do
sleep(10)
end
-- runStatus = runStatus - 1
end
function main()
onMainInit()
runStatus = 3
while runStatus == 3 do
onTimeStep()
sleep(mainLoopTimeout)
end
do
local s, e = pcall(onMainCleanup)
runStatus = runStatus - 1
-- while runStatus == 1 do
-- sleep(10)
-- end
if not s then error(e) end
end
end
Не могу понять в чем смысл данного ожидания уже после выполнения функции очистки.
Евгений написал: Ну кто из нас троль это видно по времени регистрации на данном форуме, кол-ву заданных вопросов по Lua в этой ветке и кол-ву предложений для разработчиков для Quik и созданных тем по делу с кодом на Lua.
То что ты подружился тут с Владимиром, дак он такой же троль и скандалист как ты. Вопросов и предложений минимум если они вобще есть, зато пустых разговоров сотни, и да начни уже наконец смайлики ставить, будешь вобще неотличим от Владимира, такую же пургу пишешь
А так в понедельник тебя снесут даже не сомневайся.
уж я вдруг побоялся за его исчезновение из темы и боялся что он сдох как подворотная собака от короновируса но слава аллаху за то что он продолжает поднимать рейтинг этой темы И я рад что нам попался хороший и качественный экземпляр дебилоида - тролля
Евгений написал: Ну кто из нас троль это видно по времени регистрации на данном форуме, кол-ву заданных вопросов по Lua в этой ветке и кол-ву предложений для разработчиков для Quik и созданных тем по делу с кодом на Lua.
То что ты подружился тут с Владимиром, дак он такой же троль и скандалист как ты. Вопросов и предложений минимум если они вобще есть, зато пустых разговоров сотни, и да начни уже наконец смайлики ставить, будешь вобще неотличим от Владимира, такую же пургу пишешь
А так в понедельник тебя снесут даже не сомневайся.
дебилоид ты что замолчал ??? не молчи и продолжай тут чушь свою писать , мы её хоть и не читаем нр все равно ждем с нетерпением ... ведь жизнь плоха когда в ней нет тебя лоха.
Евгений написал: Ну кто из нас троль это видно по времени регистрации на данном форуме, кол-ву заданных вопросов по Lua в этой ветке и кол-ву предложений для разработчиков для Quik и созданных тем по делу с кодом на Lua.
То что ты подружился тут с Владимиром, дак он такой же троль и скандалист как ты. Вопросов и предложений минимум если они вобще есть, зато пустых разговоров сотни, и да начни уже наконец смайлики ставить, будешь вобще неотличим от Владимира, такую же пургу пишешь
А так в понедельник тебя снесут даже не сомневайся.
женя - троль отзовись лошара я уже не могу жить без воегл троллинга
ну сам поСДИ как я без такого супер ДеБИЛОИДА как ты могу сущствовать ?
БорисД, Это не "поднятие темы" - это её замусоривание. Тем более, что ветки здесь не редактируются. Когда-то это мне тоже было интересно - я даже собрал коллекцию их высказываний обо мне, но они настолько уныло однообразны в массе, настолько предсказуемы, что мне это дело быстро надоело.
Вот кусочек моего давнего поста об этом на одном программистском форуме от 27.08.2009 10:24: Они тщательно оберегают свою собственную задницу. Свой статус якобы программистов, якобы профессионалов. А "корпоративные интересы" заставляют их объединяться в стаи: пуще огня они боятся любой свежей мысли - даже не из своей "профессиональной" зоны - ибо каждая такая мысль есть риск вскрытия факта полного отсутствия оных в их собственных головах. На такие мысли они дружно набрасываются всей толпой.
Существует множество индикаторов, позволяющих отличить эту породу от других (ведь даже они сами с легкостью это делают). Вот некоторые:
1. Для "подтверждения" своих... мыслей они тычут пальцем в мегатонные доки, которые они якобы изучили (или хотя бы читали). Например, в трехтомник Кнута. Однако в последнее время (видимо, нарвавшись пару раз на тех, кто этого самого Кнута все-таки читал) предпочитают ссылаться на некие абстрактные "учебники" или там "документацию". Профессионал же не позволяет себе подобного НИКОГДА - он просто не умеет этого делать.
2. Они трусливы: своего личного мнения они не имеют, и отождествляют себя с толпой, используя при этом "ключевые слова" типа "всех", "всегда" и т.п.
3. Они никогда не кусают "своих", даже за совсем уж неприличные глупости. Здесь есть, правда, два исключения: "паханам" это дозволено. Но быть паханом опасно: поверженного вожака с наслаждением разрывает на куски вся свора (второе исключение).
4. Основное внимание они обращают не на тему, а на автора (одно время мне было забавно наблюдать за всплесками интереса к нашему сайту). У автора выискиваются разные "козюлины" с тем, чтобы сказать: как может этот идиот, который даже [содержимое найденной козюлины] вообще что-то говорить о [название темы].
5. Они используют слэнг, который (в отличие от слэнга профессионала) чрезвычайно неустойчив, как и колебания любой моды вообще. Помнится, меня чрезвычайно раздражало, когда хлынувшая в программирование вся эта толпа дружно начала чего-то там "юзать". Теперь это уже неприлично (подумаешь, какой-то несчастный класс) - теперь модно скорее "либать".
6. Они мерно "разговаривают" между собой, тщательно изображая, что их круг интересов резко отличается от темы - спрашивается, чего они тогда тут делают? Время от времени какая-нить сопля имитирует демарш - дескать, ее трепетная душа не может более этого идиот[изм]а выносить. Не верьте - никуда она нафиг не денется.
И т.д. - вы сами легко пополните этот перечень. Вот от таких "нахлебников" мне всегда хотелось ветку очистить.
Уже и с тех пор сколько лет прошло - новое поколение подросло. А визги всё те же, практически дословно.
Раз уж эта тема стала такой абстрактной, могу сказать, что в российском сегменте общаться конструктивно сложно - практически всегда происходит переход на личности. Впрочем, это часто происходит и в реальности. Но на всяких интернет ресурсах - это просто данность. Лично мне это малопонятная данность. Поэтому проще общение строить только по конкретным вопросам, игнорируя остальное, что очень сильно мешает, либо еще проще - общаться не с русскоговорящими. Как-то в той среде разработчиков все спокойно и конструктивно происходит.
Также замечу, что вместо ответа на вопрос часто предлагают не ссылку на документацию, в чем я не вижу проблем вовсе, а высказывания - это тебе не надо, и далее уже переход в область, что ты ... такое спрашивать.
Просто взгляд со стороны, не более. Интернет у нас на кафедре подключили где-то в 94-95, так что было достаточно времени составить сравнительное наблюдение. Впрочем, это, конечно, мое сугубо личное мнение.
Nikolay, Да чего там сложного? Я тоже Инет первый раз увидел в Мадриде в 1992, а в 1995 был уже сисадмином первого городского провайдера. И друзей немало появилось, хотя с некоторыми мы первоначально ругались так, что пух и перья летели. И в реале не раз встречались. Был такой случай: договорились мы о встрече в какой-то кафешке, прихожу - вижу, в углу столы сдвинуты и человек 15 сидит. Подхожу, спрашиваю, не здесь ли встреча? Да, говорят, а ты кто? Называюсь, в ответ... аплодисменты. Начинаю знакомиться - да я же всех знаю!
А вот в этих долбаных "социальных сетях" действительно "общаться конструктивно сложно" - они заточены именно под визги. Такие времена...
В данном случае, уточню, а не вообще. Потому что require вносит файл в список модулей и не любит полные пути, dofile же делает что ожидается без лишней автоматики.
Цитата
Владимир написал: Кстати, что за зверь flush и на кой он нужен? А onMainInit зачем? Почему этого не сделать прямо в main?
1) flush сбрасывает буфер файла на диск, это тот же сишный fflush напрямую. Рантайм создает буфер 4к, пишет туда и сбрасывает блоками по 4к. Если скрипт падает (или виснет) после file:write, последний записанный кусок на диск не попадет, мы тут типа соломки подстелили. 2) onMainInit как раз чтобы вынести бизнес-код из мейна, заодно весь мусор, созданный в процессе инициализации, попадет к коллектору сразу после нее, а не после того, как мейн закончится (т.е. никогда).
Цитата
Владимир написал: Но я не совсем врубился, что происходит. Можно описание процесса на русском языке?
1) OnStop снижает runStatus с 3 до 2 и крутит спинлок, не давая квику начать отсчет остатка жизни мейна. 2) главный цикл в мейне завершается и мейн выполняет очистку, в нашем случае запись дампа, при этом он уверен, что квик его ждет (висит на OnStop). Тут важен pcall, иначе если при очистке вылетит ошибка, квик так и останется висеть навеки. 3) мейн закончил очистку, понижает runStatus с 2 до 1 и крутит спинлок, это сигнал для OnStop, что очистка закончена. 4) OnStop вышел из спинлока и понизил runStatus c 1 до 0, это сигнал мейну, что OnStop завершен. 5) если при очистке была поймана ошибка, мейн ее теперь бросает заново, теперь квик не ждет нас и не зависнет. Если ошибки нет, мейн просто завершается. Это не решает проблем с отправкой сообщений окнам из мейна, т.е. при наличии окон придется переделать, чтобы очистка была таки в OnStop. Но решает проблемы с недописанным файлом, если мейн слишком резво закончится. Как-то Старатель о таком писал, а тут у меня воспроизвелось и пришлось порешать.
Цитата
BlaZed написал: Не могу понять в чем смысл данного ожидания уже после выполнения функции очистки.
Если мейн выбрасывает ошибку, пока OnStop крутит спинлок, квик зависает намертво. Тут мы убеждаемся, что спинлок закончился. Если сделать имя файла "?.lua", будет вылетать ошибка и можно это пронаблюдать.
Anton, 1) Понятно. Я, как правило, сам организовывал буферизацию файловых операций (кстати, и буфер у меня был именно 4К), а потому не в курсе даже про сишный fflush.
2) Понятно. Насчёт "вынести бизнес-код из мейна" я согласен, но когда какая-то падла начинает чего-то чистить... Я программист, я и решаю, что есть мусор, а что нет .
Да, наверное, этот вариант завершения предпочтительнее - меня просто тошнит от необходимости выполнять завершающие действия в OnStop. Согласен даже смириться с наличием pcall - думаю, здесь и сам Оккам возражать не станет. Но ведь окна (в смысле, таблицы Квика) всё равно надо убивать? Или под "окнами" подразумевается что-то другое?
Владимир написал: 1. Для "подтверждения" своих... мыслей они тычут пальцем в мегатонные доки, которые они якобы изучили (или хотя бы читали). Например, в трехтомник Кнута. Однако в последнее время (видимо, нарвавшись пару раз на тех, кто этого самого Кнута все-таки читал) предпочитают ссылаться на некие абстрактные "учебники" или там "документацию". Профессионал же не позволяет себе подобного НИКОГДА - он просто не умеет этого делать .2. Они трусливы: своего личного мнения они не имеют, и отождествляют себя с толпой, используя при этом "ключевые слова" типа "всех", "всегда" и т.п. 3. Они никогда не кусают "своих", даже за совсем уж неприличные глупости. Здесь есть, правда, два исключения: "паханам" это дозволено. Но быть паханом опасно: поверженного вожака с наслаждением разрывает на куски вся свора (второе исключение).
Владимир вам доставляет удовольствие печатать свои старые посты 10 летней давности? Это похоже на какой то словесный фетишизм Наверно вы считаете свои высказывания произведением искусства? Да.. не думал я что такое может быть но на всякий случай проверил и оказалось да действительно Владимир копирует свои старые посты и вставляет сюда с других форумов где он уже заблокирован за вредоносную деятельность
Вот ссылка на тот пост Владимира 2009 года, какие цели преследует этот человек тоже неясно. Толи он ведет реестр всех своих "гениальных высказываний" толи память у него такая хорошая
Ладно Владимир я от вас отстал, я прочитал ваш сайт бегло и понял что не буду больше до вас докапываться так как полностью поддерживаю то о чем вы пишите
Евгений, Ну вот, лапуль, я же говорил - быдло от программирования обращает внимание не на тему, а на автора. Предыдущие поколения головожопых откапывали даже мой домашний адрес, имена детей...
ALL К сожалению, вынести из OnStop "неприличные" действия не удалось, а потому функция приобрела почти окончательный вид. Приводить полный код скрипта уже не стоит, ящетаю - только отдельных модулей или даже их фрагментов. Код OnStop у нас теперь выглядит так:
Код
function OnStop() -- вызов по нажатию кнопки "Остановка скрипта"
F:close(); -- закрываем лог-файл и сообщаем юзеру
WriteDump(); -- записываем дамп состояния
message("Файл результатов записан!");
f=false; -- признак окончания бесконечного цикла
DestroyTable(T); -- убиваем таблицу визуализаци и меню
if m~=0 then DestroyTable(t);end;
return 500; -- чтобы заканчивал работу скрипта побыстрее
end; -- конец функции OnStop()
function OnStop() -- вызов по нажатию кнопки "Остановка скрипта"
end; -- конец функции OnStop()
Заодно поправим список глобальных переменных (как я уже сказал, с мнемоникой определяйтесь сами, а пока они будут вот такими:
Код
f=true; -- признак работы скрипта (false - завершение)
N=0; -- количество доступных тикеров
m=0; -- флаг состояния контекстного меню
T=0; -- ID таблицы визуализации результатов
t=0; -- ID таблицы контекстного (всплывающего) меню
CC="?"; -- код клиента
AC="?"; -- торговый счёт
Ну, а теперь начнётся АМБУЛА. То бишь структуры данных и парсер. Здесь уже начинаются кое-какие "ноухавные" вещи, которые я раскрывать не хочу, так что в "каркас" всё это дело попадёт в кастрированном виде.
Евгений, Лапуль, Вы меня не интересуете АБСОЛЮТНО. Отстали Вы, не отстали - по барабану. А раз уж откопали мой сайт прочтите там страничку с "методикой вытравливания головожопых".
Ну а за быдло конечно спасибо, но для чего вы тогда делали ваш сайт? Чтобы вас кто то нашел? Правильно? Вот я и нашел, теперь вас тут знают в лицо Вот сайт Владимира программиста от бога http://sint.wc.lt/index.htm
Интересный все таки этот мир, есть люди считающими себя лучше всех, это как фашизм,нацизм и прочее, дай таким людям власть и они начнут рубить головы и жечь книги, гитлер тоже наверное считал всех головожопыми и хотел их поэтому уничтожить
Евгений, Лапуль, я в жизни ни от кого не прятался - у меня за 40 лет пребывания в Инете даже ника никогда не было, кроме rybvv, что означает Рыбинкин Владимир Владимирович.
Anton написал: 2) onMainInit как раз чтобы вынести бизнес-код из мейна, заодно весь мусор, созданный в процессе инициализации, попадет к коллектору сразу после нее, а не после того, как мейн закончится (т.е. никогда).
Тоже самое, если запихать содержимое onMainInit в блок do end?
Цитата
Anton написал: 1) OnStop снижает runStatus с 3 до 2 и крутит спинлок, не давая квику начать отсчет остатка жизни мейна.
А не проще onMainCleanup выполнить в OnStop? Ведь пока OnStop крутит холостой цикл, QUIK все равно ничего не делает.
Незнайка написал: Тоже самое, если запихать содержимое onMainInit в блок do end?
Да.
Цитата
Незнайка написал: А не проще onMainCleanup выполнить в OnStop?
Проще. Тут идея в том, что пара onMainInit/onMainCleanup строго в мейне выполняется, а еще должна быть пара onQuikInit/onQuikCleanup, выполняемая строго в потоке квика, и там как раз окна должны создаваться/прибиваться и прочее подобное. Может покажу еще, если руки дотянутся. Заинлайнить можно все, задача-то наоборот разложить по полочкам, чтобы с первого взгляда было понятно, что в каком порядке происходит.
Незнайка написал: Если только в образовательных целях.
Здесь в образовательных. У меня все в длл, там кое-что происходит, для чего важно, из какого потока вызывать. И тут, думаю, на каком-то этапе окажется, что такое деление удобно.
Nikolay написал: Раз уж эта тема стала такой абстрактной, могу сказать, что в российском сегменте общаться конструктивно сложно - практически всегда происходит переход на личности. Впрочем, это часто происходит и в реальности. Но на всяких интернет ресурсах - это просто данность. Лично мне это малопонятная данность.
Вполне понятная данность. Это следствие отсутствия нормальной модерации.
Цитата
Nikolay написал: Для меня как раз наоборот. dofile живет в глобальном контексте, что неудобно. По сути это предкомпилированная блок кода. При этом вместо require можно использовать конструкцию типа:
Код
local lib = load(file_path)()
что, по сути, равносильно dofile, но имеет преимущества. Как минимум, можно получить код ошибки при загрузке модуля, если таковая есть. Например, переопределив dofile так
Код
function dofile (filename) local f = assert(loadfile(filename)) return f() end
От себя добавлю, если интересно: Согласен с Антоном, сам всегда использую dofile для загрузки кусков кода или модулей на луа. require также использует loadfile, но сложнее. Зачем вам все эти пути и искатели в простой задаче, когда вы знаете где и что у вас лежит?
Код
inSecList = dofile(inFileName)
inSecList = assert(loadfile(inFileName)) () -- или так, если нужно
Anton написал: 2) onMainInit как раз чтобы вынести бизнес-код из мейна, заодно весь мусор, созданный в процессе инициализации, попадет к коллектору сразу после нее, а не после того, как мейн закончится (т.е. никогда).
От себя добавлю: у меня очень часто в подобных конструкциях мусор к коллектору не попадал, поэтому в конце подобных функций инициализации ставил collectgarbage ().
Итак, структуры. Самая простая, конечно, у лог-файла. Формат там свободный - допустим, вот такой:
Код
Сделка 3699451517 по заявке 23096891843 Покупка SNGS: 36.21*1=3621.0
Сделка 3700211939 по заявке 23101571931 Покупка NLMK: 208.34*1=2083.4
Сделка 3700217106 по заявке 23101608106 Продажа OZON: 3914.0*1=3914.0
Сделка 3700698360 по заявке 23104613958 Продажа RUAL: 41.125*10=4112.5
Сделка 3700712138 по заявке 23104724596 Покупка LKOH: 6147.0*1=6147.0
Можно ставить метку о дате/времени, давать информацию о заявках, отладочную печать и вообще всё, что в голову взбредёт. Как выводить - тоже все знают: F:write("Заявка "..xxx..": "..string.format("%1.3f",yyy).."\n"); Или что-то в этом духе.
А вот входной (он же выходной) файл уже требует внимания - он предназначен не [только] для юзера, но и для компа.
В соответствии с Оккамом, мультивалютная торговля в "каркас" не попадает - торгуем только на рубли, так что возьмём в брокеры Сбер, который на валюту не торгует и не собирается это делать. Причём я не согласен с Антоном: парсер должен быть именно свой, чтобы юзер имел возможность положить туда всё, что ему требуется, а не укладываться в прокрустово ложе стандартных парсеров.
Теперь подумаем, что там должно лежать. Информация о портфеле, конечно! Но тут нюанс: портфель не есть нечто застывшее, а потому включаем сюда те акции (кто хочет - облигации, фьючерсы и всё остальное, я не хочу), которые теоретически могут оказаться в нашем портфеле. Выглядеть этот файл будет примерно так:
Обратите внимание на первые 4 строки. У меня сделано так: строки, начинающиеся с символа "-" - это комментарии. Строки с первым символом "_" - это куски кода на Lua, заглатываемые парсером через loadstring. Все остальные строки - информация о тикерах (одна строка - один тикер). То есть мы имеем таблицу о пяти столбцах через табуляцию: код класса, код инструмента, количество лотов (не акций!) в портфеле, цена (средняя по всем лотам) одной акции (не лота). Последний столбец обозначает конец строки - хрен его знает, какой там символ конца строки, да и мне удобнее видеть, где строка кончается.
И на третью строчку посмотрите, которая "количество свободной валюты". Не скрипта собачье дело, сколько денег у меня на счёте лежит. Я ему дал тыщу рублей в зубы, и пусть выкручивается как знает!
У меня это дело выглядит заметно сложнее, но для "каркаса" и так сойдёт.
Как вернуть себе авторитет и заделаться крутым специалистом по Lua? Да очень просто: создать себе фейковых заказчиков и друзей и заказывать у себя самого программы, авось кто и на самом деле клюнет и тоже закажет но уже по настоящему? Так ведь? Гениально просто?
Поэтому БорисД не захотел заказывать у фрилансеров которых он не знает?
Как я вас раскусил?
Да очень просто. Проанализировав ваш сайт все стало понятно, ваши интересы ваши МЕТОДЫ и некоторые слова типа ДЕБИЛОИД которыми вы меня обзывали. А также ваши методы устранения тролей.
Что испугались моего вмешательства в ваш гениальный проект, что я могу прокатить за специалиста который будет писать программы в вашей теме и перебивать заказы? Вычислить вашу придуманную компанию из БорисаД и Михаила с регистрацией в октябре не составило труда
Если мечта заказчика настолько сильна, что он готов держать прогера на почасовой оплате для переписывания всех идей из интернетов на луа, все в этом мире возможно. Чет я таких заказчиков не встречал, в основном взаимовыгодное типа.
ну теперь можешь считать что встретил , я именно и есть такой. Вот только в очередной раз тоже не хочу нарваться на начинающего фрилансера , которому к тому же нужно рассказать и вдолбить как минимум азы торговли на бирже. Поэтому в своем первом сообщении сразу озвучил что ищу СПЕЦА , а настоящему спецу и денег не жалко за работу заплатить. Но сразу дополню что согласен со всеми кто советует самостоятельно изучать языки - что я и пытаюсь делать , и естественно пол часа как писал Владимир ( идаже неделя-две ) это не про меня , хотя основы программирования понимаю и многое другое тоже но кроме как " Привет Мир " сам еще ни чего другого по прежнему не кодил.