<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Последние темы форума "LUA: Общие вопросы"]]></title>
		<link>http://www.lua.ru/forum/forums/show/1.page</link>
		<description><![CDATA[Последние обсуждаемые темы на форуме "LUA: Общие вопросы"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Регистрация функций</title>
				<description><![CDATA[ А как сделать из основной программы так, чтобы функции этой основной программы из скрипта вызывались так: "engine.foo (arg)"?]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/341/2237.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/341/2237.page</link>
				<pubDate><![CDATA[Mon, 26 Jul 2010 20:42:25]]> GMT</pubDate>
				<author><![CDATA[ Dr.Radio]]></author>
			</item>
			<item>
				<title>Ошибка в функции. Помогите!</title>
				<description><![CDATA[ Доброго времени суток. Есть некий код в виде функции, который, по непонятным мне причинам, не хочет пахать. Это скрипт от стороннего интерпретатора, поэтому некоторые функции нестандартны. Буду очень признателен, если кто-то разберется и найдет ошибку. Дебагер вещает: attempt to index global 'curFile' (a nil value)<br /> [code]<br /> function File.SplitBinary(filePath, folderPath, size, CallbackFunction)<br /> 	fileSize = File.GetSize(filePath);<br /> 	counter = 1;<br /> 	files = {};<br /> 	fileName = String.SplitPath(filePath).Filename..String.SplitPath(filePath).Extension..".";<br /> 	realpart = io.open(filePath, "rb");<br /> 	<br /> 	while fileSize &gt; 0 do<br /> 		if size &gt; fileSize then<br /> 		size = fileSize;<br /> 		end<br /> 		Table.Insert(files, Table.Count(files)+1, size);<br /> 		fileSize = fileSize-size;<br /> 	end<br /> 	<br /> 	for i=1, Table.Count(files) do<br /> 		if CallbackFunction ~= nil then<br /> 		CallbackFunction(i, Table.Count(files), Math.Round((i/Table.Count(files))*100, 0));<br /> 		end<br /> 		<br /> 		if i &lt; 10 then<br /> 		 cfileName = "00"..i;<br /> 		elseif i &lt; 100 then<br /> 		 cfileName = "0"..i;<br /> 		elseif i &lt; 1000 then<br /> 		 cfileName = i;<br /> 		end<br /> <br /> 		curFile = io.open(folderPath.."\\"..fileName..cfileName, "wb");<br /> 		curPart = realpart:read(String.ToNumber(Table.Concat(files, "", i, i)));<br /> 		curFile:write(curPart);<br /> 		curFile:close();<br /> 	end<br /> <br /> 	realpart:close();<br /> end[/code]<br /> [b]Ошибка при обработке строчки [color=blue]curFile:write(curPart);[/color] (5-ая с конца)[/b]]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/339/2216.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/339/2216.page</link>
				<pubDate><![CDATA[Sat, 17 Jul 2010 20:05:51]]> GMT</pubDate>
				<author><![CDATA[ Hammer46]]></author>
			</item>
			<item>
				<title>Mozilla Jetpack + Lua</title>
				<description><![CDATA[ Задача разработать расширение Thunderbird таким образом чтобы вместе с XUL было возможно использовать Lua.<br /> <br /> Есть Mozilla Jetpack, который позволяет добавить язык Python.<br /> <br /> Кто-то из форумчан пробовал добавлять в расширения Mozilla поддержку Lua?]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/338/2211.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/338/2211.page</link>
				<pubDate><![CDATA[Fri, 16 Jul 2010 13:15:50]]> GMT</pubDate>
				<author><![CDATA[ al]]></author>
			</item>
			<item>
				<title>Контроль доступа к членам объекта</title>
				<description><![CDATA[ Вот наваял для одного проекта, одно огорчает скорость чтения упала почти в 5 раз<br /> <br /> [code]<br /> item = {}<br /> <br /> function item:get(key)<br />     local private = getmetatable(self)<br />     local val = private[key]<br /> <br />     if not val then<br /> 	val = private.parent[key]<br />     end<br /> <br />     return val<br /> end<br /> <br /> function item:changed(key, val)<br />     print(string.format("Changed %s to %s", key, tostring(val)))<br />     return true<br /> end<br /> <br /> function item:set(key, val)<br />     local private = getmetatable(self)<br /> <br />     if self:changed(key, val) then<br /> 	private[key] = val<br />     end<br /> end<br /> <br /> function item:call(level)<br />     local private = getmetatable(self)<br />     local level = level or 1<br /> <br />     for k,v in pairs(private) do<br />         if type(v) == "table" then<br />             v(level+1)<br />         else<br />             print(level, k,v)<br />         end<br />     end<br /> end<br /> <br /> function item:new(private)<br />     local mt = private or {}<br />     local object = {}<br /> <br />     setmetatable(object, mt)<br /> <br />     mt.__index = self.get<br />     mt.__newindex = self.set<br />     mt.__call = self.call<br />     mt.parent = self<br /> <br />     return object<br /> end<br /> <br /> ---------------------<br /> <br /> readonly = item:new()<br /> <br /> function readonly:changed(key, val)<br />     print(string.format("Imposible %s to %s", key, tostring(val)))<br />     return false<br /> end<br /> <br /> ---------------------<br /> <br /> pref = item:new{<br />     account = 1;<br /> <br />     camera = readonly:new{<br />         preview = item:new{<br />     	    name = "preview",<br />             grayscale = true<br />         };<br /> <br />         action = item:new{<br />     	    name = "action",<br />             grayscale = false<br />         };<br />     };<br /> }<br /> <br /> pref.account = 2<br /> pref.camera.preview = nil<br /> pref.camera.preview.grayscale = false<br /> [/code]<br /> <br /> [quote]<br /> Changed changed to function: 0x804dae8<br /> Changed account to 2<br /> Imposible preview to nil<br /> Changed grayscale to false<br /> [/quote]<br /> <br /> Основная задача была вызывать callback-и при изменении данных ;) В принципе можно легко сделать на каждый "отслеживаемый" член объекта свой callback]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/337/2205.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/337/2205.page</link>
				<pubDate><![CDATA[Wed, 14 Jul 2010 11:58:33]]> GMT</pubDate>
				<author><![CDATA[ Strijar]]></author>
			</item>
			<item>
				<title>lua_pushstring ?</title>
				<description><![CDATA[ Всем привет!<br /> <br /> Разъясните пожалуйста такую ситуацию:<br /> <br /> Моя dll взаимодействует с программой через Lua.<br /> <br /> Раньше, когда программа использовала [b]Lua 5.0.2[/b], я мог добавить в стек пустую строку  так:<br /> [code]lua_pushstring (L, "")[/code]<br /> Теперь программа использует [b]Lua 5.1.4[/b] - выше указанный код добавляет в стек [b]nil[/b], вместо строки - почему так? :( <br /> Или это только у меня такое?<br /> <br /> P.S. Если строка не пустая, то все OK. <br /> ]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/336/2191.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/336/2191.page</link>
				<pubDate><![CDATA[Sun, 11 Jul 2010 13:52:24]]> GMT</pubDate>
				<author><![CDATA[ Lapex]]></author>
			</item>
			<item>
				<title>Передача переменных C(userdata) &lt;-&gt; Lua</title>
				<description><![CDATA[ Нашёл простой и главное понятный пример <a class="snap_shots" href="http://tracker.coreboot.org/trac/serialice/changeset/86" target="_blank" rel="nofollow">http://tracker.coreboot.org/trac/serialice/changeset/86</a><br /> теперь у меня есть доступ к переменным типа <br /> <br /> tbl.a = 10;<br /> tbl.b = "str";<br /> print( tbl.a, tbl.b );<br /> <br /> А теперь вопросы:<br /> Как сделать обработку произвольной вложенности структур(метатаблиц) ?<br /> например:<br /> tbl.t.a = 10;<br /> подозреваю что на запрос метод (GET / __index) должен вернуть метатаблицу, пока не понимаю как это сделать, ведь tbl регистрировал как глобальную переменную и методы к ней привязывал.<br /> <br /> Вроде есть ещё вариант всё делать через light userdata, и можно одни и те же методы использовать, определяя с чем работаешь по адресу объекта,  но там судя по мануалу (пару строк) тёмный лес.<br /> <br /> Подскажите ссылки на "туториалы", где показано как работать с userdata? <br /> Желательно на обычном Си, т.к. C++ противопоказан в моей системе.]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/335/2182.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/335/2182.page</link>
				<pubDate><![CDATA[Fri, 9 Jul 2010 11:23:51]]> GMT</pubDate>
				<author><![CDATA[ jobf]]></author>
			</item>
			<item>
				<title>остановка продолжение скрипта</title>
				<description><![CDATA[ столкнулся с проблемой, наверное детской но с луа только знакомлюсь<br /> задача такая<br /> из луа вызывается функция на С и она выполняется так, что после ее вызова скрипт какбы останавливается<br /> и потом, после некоего действия пользователя нужно както продолжить выполнение скрипта<br /> <br /> вот как это правильно реализовать???<br /> <br /> (чтобы было понятно, показ сообщения и при нажатии кнопки далее возобновление выполнения скрипта)]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/334/2180.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/334/2180.page</link>
				<pubDate><![CDATA[Thu, 8 Jul 2010 22:00:29]]> GMT</pubDate>
				<author><![CDATA[ MrGobus]]></author>
			</item>
			<item>
				<title>Как сделать аналог print так чтобы он выводил в output отладчика SciTE</title>
				<description><![CDATA[ Переписал сделал аналог print так, как требует задача.<br /> Код на дельфи.<br /> Вывожу текст с помощью Writeln,<br /> что эквивалентно printf в С++<br /> <br /> Всё работает почти хорошо, за исключением одной детали.<br /> Если отлаживать код в SciTE, то весь мой вывод отображается только после завершения скрипта.<br /> <br /> А если например вызывать то стандартный print , то мою функцию, то по завершению скрипта в output<br /> сначала идут все вызывавшиеся print и только потом мой текст.<br /> <br /> Явно - в output для SciTE надо выводить както по другому.<br /> <br /> Нашёл вот это<br /> <a class="snap_shots" href="http://code.google.com/p/scite-ru/source/browse/branches/scintillua/src/scintilla/src/LexLPeg.cxx?spec=svn1290&r=1290" target="_blank" rel="nofollow">http://code.google.com/p/scite-ru/source/browse/branches/scintillua/src/scintilla/src/LexLPeg.cxx?spec=svn1290&r=1290</a><br /> обрадовался... попробовал... не работает.<br /> lua_getfield(L, LUA_REGISTRYINDEX, "main_win_id");  возращает nil.<br /> <br /> Как правильно вывести в output SciTE свой текст?<br /> ]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/333/2179.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/333/2179.page</link>
				<pubDate><![CDATA[Thu, 8 Jul 2010 16:52:00]]> GMT</pubDate>
				<author><![CDATA[ Ling]]></author>
			</item>
			<item>
				<title>как получить из стека функцию lua</title>
				<description><![CDATA[ Здравствуйте <br /> у меня достаточно много функций (описанных в скрипте, а не зарегистрированных С функций), которые я не хотел бы искать каждый раз, когда они потребуются))) <br /> можно ли сохранить один раз эти функции, а потом класть в стек и запускать?<br /> что-то типа:<br /> 1. getfield(lua,-1,funcname)<br /> 2. id = lua_to...(lua,-1)<br /> ...<br /> n-1. lua_push...(lua,id)<br /> n. lua_call(lua,0,0)<br /> <br /> заранее спасибо за возможные ответы)<br /> ]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/332/2177.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/332/2177.page</link>
				<pubDate><![CDATA[Thu, 8 Jul 2010 10:03:08]]> GMT</pubDate>
				<author><![CDATA[ sergiokey]]></author>
			</item>
			<item>
				<title>Открытие lua файла</title>
				<description><![CDATA[ Вообшем пре открытии этого файла narod.ru/disk/22329257000/loc_RU.scd.rar.html  сплошные каракули вместо текста.]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/331/2168.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/331/2168.page</link>
				<pubDate><![CDATA[Thu, 1 Jul 2010 18:54:44]]> GMT</pubDate>
				<author><![CDATA[ dantt3]]></author>
			</item>
			<item>
				<title>Встроить луа-консоль в игру. (перенаправление вывода)</title>
				<description><![CDATA[ Собственно сабж. В последней луа не нахожу lbaselib.c в которой вроде бы должен был бы прописываться print. <br /> Вообще говоря интересно создание полноценного консольного интерпретатора Луа в игре, дабы что либо из Луа части можно было посмотреть\изменить\дополнить "на лету". Ввод организовываю через банальное dostring. а вот ввод... ошибки вывожу, результат - увы нет. Подскажите пожалуйста где копать.<br /> Спасибо!]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/329/2161.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/329/2161.page</link>
				<pubDate><![CDATA[Tue, 29 Jun 2010 23:51:43]]> GMT</pubDate>
				<author><![CDATA[ Seagull]]></author>
			</item>
			<item>
				<title>проблемы с условием в if</title>
				<description><![CDATA[ задаю массив<br /> nicktable = {"Kiar"}<br /> <br /> потом по ходу скрипта идет условие, где user.sNick - может быть равен "Kiar" а может быть и не равен.<br />   if nicktable[user.sNick] then<br /> проблема в том что nicktable[user.sNick] всегда возвращает false, независимо от того есть ли в массиве ник или нету.<br /> <br /> в чем проблема? подскажите<br /> <br /> PS lua 5.2]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/328/2158.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/328/2158.page</link>
				<pubDate><![CDATA[Mon, 28 Jun 2010 17:56:28]]> GMT</pubDate>
				<author><![CDATA[ Kiar]]></author>
			</item>
			<item>
				<title>Скрипт нажатия кнопки</title>
				<description><![CDATA[ Добрый день<br /> Прошу помощи в написании скрипта для девайса logitech g13.<br /> Не как не удается додумать так сказать логику скрипта в силу незнании языка lua<br /> Есть такой скрипт<br /> [code]function OnEvent(event, arg)<br /> if (event == "G_PRESSED" and arg == 15) then<br />     PressKey("lshift")<br />     end<br /> if (event == "G_RELEASED" and arg == 15) then<br />     ReleaseKey("lshift")<br />     end<br /> end[/code]<br /> <br /> Хочется реализовать такое действие:<br /> Нажимаю кнопку и отпускаю, она нажимается и всем программам кажется что она нажата, нажимаю еще раз ее и она отпускается...<br /> Уже весь мозг сломал, как это реализовать может кто подскажет, это типо капса, если нажал то пишет заглавными, нажал еще раз и пишет обычными:)<br /> Заранее спасибо.]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/327/2150.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/327/2150.page</link>
				<pubDate><![CDATA[Sat, 26 Jun 2010 21:52:50]]> GMT</pubDate>
				<author><![CDATA[ graygrayfox]]></author>
			</item>
			<item>
				<title>Lua для VC++ c CLR</title>
				<description><![CDATA[ Доброго времени суток.<br /> <br /> Помогите плиз разобраться, пишу проект на VC++ 2008 проект с CLR.<br /> Подключаю к ниму Lua (предварительно откомпилировал в dll).<br /> <br /> При попытке откомпилировать выдает кучю подобных ошибок:<br /> <br /> [code]1&gt;LuaChar.obj : error LNK2031: не удалось создать P или Invoke для &quot;extern &quot;C&quot; void __clrcall luaL_register(struct lua_State *,char const *,struct luaL_Reg const *)&quot; (?luaL_register@@$$J0YMXPAUlua_State@@PBDPBUluaL_Reg@@@Z); в метаданных отсутствует соглашение о вызовах<br /> <br /> 1&gt;LuaChar.obj : warning LNK4248: неразрешенная лексема TypeRef (01000010) для &quot;lua_State&quot;; образ нельзя запустить<br /> <br /> 1&gt;LuaChar.obj : error LNK2028: ссылка на неразрешенную лексему (0A000009) &quot;extern &quot;C&quot; void __clrcall luaL_register(struct lua_State *,char const *,struct luaL_Reg const *)&quot; (?luaL_register@@$$J0YMXPAUlua_State@@PBDPBUluaL_Reg@@@Z) в функции &quot;int __clrcall luaopen_SCC(struct lua_State *)&quot; (?luaopen_SCC@@$$FYMHPAUlua_State@@@Z)<br /> <br /> 1&gt;LuaChar.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;extern &quot;C&quot; void __clrcall lua_getfield(struct lua_State *,int,char const *)&quot; (?lua_getfield@@$$J0YMXPAUlua_State@@HPBD@Z) в функции &quot;class SimpleCharClass * __clrcall `anonymous namespace'::check_SCC(struct lua_State *)&quot; (?check_SCC@?A0x61725c5e@@$$FYMPAVSimpleCharClass@@PAUlua_State@@@Z)[/code]<br /> <br /> вот...<br /> Отключаю в проекте CLR:pure, на Lua перестает ругаться, ругается на все остальное, из этого сделал вывод что Lua не работает с CLR.<br /> Попытался откомпилировать dll с поддержкой CLR, матюкается на то, что не может .c файлы откомпилировать.<br /> <br /> Переношу все из LuaChar.cpp в пустой Windows Console Application (без CLR) шикарно компилится.<br /> <br /> Вот собственно и вся проблема... Буду очень признателен за помощь.]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/326/2147.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/326/2147.page</link>
				<pubDate><![CDATA[Thu, 24 Jun 2010 15:53:18]]> GMT</pubDate>
				<author><![CDATA[ mmxt]]></author>
			</item>
			<item>
				<title>Анонс: HTTP proxy с поддержкой фильтрации данных на Lua</title>
				<description><![CDATA[ Ну, свершилось, написал<br /> <br /> Кому интересно:<br /> [url=http://peerj.livejournal.com/34293.html]О разработке, зачем надо было, что умеет и т.п.[/url]<br /> [url=http://github.com/pirj/proxy/]Для тех, кому предыдущий линк читать лень. Talk is cheap. Show me the code. (с) LT[/url]<br /> <br /> Горд собой за скорость работы, корутины рулят.<br /> LuaSocket классно, но плохо вяжется с другими (сторонние DNS резолвилки, LTN12 и корутины)<br /> Мне кажется, что тема вполне может быть применима сисадминами при небольшой доработке: сделать, чтобы фильтр был не один.<br /> Тогда можно будет грядкой запирать vkontakte итп, да ещё и выдавать злобную страницу, что пользователь на заметке.<br /> Ну, и прочие применения, зависит от фантазии только.<br /> ]]></description>
				<guid isPermaLink="true">http://www.lua.ru/forum/posts/preList/325/2146.page</guid>
				<link>http://www.lua.ru/forum/posts/preList/325/2146.page</link>
				<pubDate><![CDATA[Thu, 24 Jun 2010 01:54:14]]> GMT</pubDate>
				<author><![CDATA[ philpirj]]></author>
			</item>
	</channel>
</rss>