Callisto 2 Опубликовано 4 Июня 2012 Доброго времени суток. Наверное, это более подходящая тема. С темой сталкера вопрос связан косвенно, но к самой игре не имеет отношения. Вопрос наверное простоват, но я что-то не могу понять (пока только учусь). Имеется три таблицы, из первой берется рандомная строка, далее, необходимо условие: если эта строка равна какой-либо строке из второй таблицы, то, к возвращаемой строке, добавляется строка из третьей таблицы, а если не равно, то ничего не добавляется. Так вот, собственно, не могу понять, как провести сравнение Text_1 с со второй таблицей? Дайте пожалуйста пинка в нужном направлении. function Initialize() table_1={ "String_1", "String_2", "String_3", "String_4", "String_5", "String_6", "String_7", "String_8", "String_9", "String_10" } table_2={ "String_1", "String_4", "String_7", "String_10" } table_3={ "String_1a", "String_2a", "String_3a", "String_4a", "String_5a", "String_6a", "String_7a", "String_8a", "String_9a", "String_10a" } end function Update() Text_1 = table_1[math.random( #table_1 )] if Text_1 == table_2 then Text_2 = table_3[math.random( #table_3 )] end if Text_1 ~= table_2 then Text_2 = " " end return Text_1.." "..Text_2 end Если важно, то это для программы Rainmeter. Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 4 Июня 2012 (изменено) Вот сейчас читаю и понимаю, что все-таки наверно неправильно сформулировала мысль. Хотя козалось вроде все грамотно излагаю Вторая таблица как-раз очень нужна. Там только строковые значения, без индексов. Вся схема это попытка реализовать динамические новости (АМК и OGSE) для программы Rainmeter. Все было готово, но, как всегда захотелось чуть-чуть усложнить схему (чтоб было еще рендомнее ). Тут надо не вернуть строку, а сделать присвоение. Типа: если Text_1 == table_2 тогда Text_2 = "1" если Text_1 ~= table_2 тогда Text_2 = "2" А далее Text_2 передается в другую таблицу, откуда уже получается конечный результат. Вобщем должно быть как-то так, надеюсь сейчас лучше изложила. Пока писала возникла одна идейка, пойду попробую. Изменено 4 Июня 2012 пользователем Callisto Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 22 Июня 2012 Доброго времени суток. Возник новый вопрос. Возможно ли, время, представленное в секундах (как пример os.time), преобразовать в формат: год, месяц, день, час, минута. Собственно сама задача, из реестра получаю дату установки ОС в секундах и надо привести к человеческой форме восприятия. Есть ли какой-нибудь штатный способ перевода или придется реализовывать с помощью более сложного кода? Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 22 Июня 2012 Кактус_523, А причем тут os.date? У меня есть число и его необходимо преобразовать в дату. Или может я чего не понимаю? Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 29 Ноября 2012 (изменено) Доброго времени суток. Почитав данную тему, к своему стыду так и не разобралась в одном вопросе. Мне необходимо из строки вида 12:34 получить те части строки, в которых цифры и преобразовать в числовое значение. С последним все оказалось просто, а вот с первым не очень. Собственно вопрос: где можно подробно узнать как разобрать строку? И где можно найти информацию о значениях символов в паттернах? К сожаленью самостоятельно ничего не смогла найти (то ли гугл у меня бракованный, то ли руки не оттуда растут ). Что-то вы товарищь malandrinus больше сообщения принимать не можете Т.ч поблагодарю здесь, надеюсь сильно не накажут. Большое спасибо, буду изучать. Изменено 29 Ноября 2012 пользователем Callisto Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 9 Декабря 2012 Доброго времени суток. Наверное вопрос опять из разряда примитивных, но все же спрошу. Возможно ли с помощью Lua отследить процесс (запущен или нет), а если запущен, то узнать состояние окна (развернуто или свернуто на панель задач (в трей).? Необходимо отслеживать несколько текстовых редакторов. Один способ у меня есть, но заинтересовала возможность реализации этого через Lua. Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 15 Марта 2013 Доброго времени суток. И снова у меня вопрос из разряда элементарных-дурацких, но все же... Получаю я строку, в которой у всех букв нижний регистр и мне необходимо преобразовать первую букву в верхний. В принципе, ничего сложного, с но почему-то при кодировке 1251 функция string.upper не работает. Ну, и собственно вопрос: как быть? Можно ли изменить кодировку строки? Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 15 Марта 2013 Artos, о таком способе подумывала, но понадеялась, что есть какой-нибудь стандартный способ. Спасибо, теперь так и реализую. Gun12, Твой вариант не сработал. У меня тоже W7, но на сколько чистый Lua- не знаю Делаю скин для программы Rainmetr и штатных способов не нашла, поэтому и решила использовать скрипт. А строку получаю при парсинге страницы в интернете. Поделиться этим сообщением Ссылка на сообщение
Callisto 2 Опубликовано 27 Марта 2013 (изменено) Доброго времени суток. И снова у меня вопрос из разряда элементарных-дурацких, но все же... Теперь решила сделать себе напоминалку праздников и дней рождения и все работает, но не могу разобраться, как удалить запись из таблицы. Собственно код -- ["ММДД"] = {"Название праздника"," Описание либо имя","Год"} table_1 = { -- Январь ["0101"] = {"День Рождения","Имя1","1988"}, ["0131"] = {"День Рождения","Имя1","1989"}, -- Февраль ["0201"] = {"День Рождения","Имя1","1990"}, ["0223"] = {"День защитника отечества","текст"} -- И так далее... } function Update() local y = SKIN:GetMeasure('Ms_Time_Year'):GetStringValue() -- Получаем год local m = SKIN:GetMeasure('Ms_Time_Month'):GetStringValue() -- Получаем месяц local d = SKIN:GetMeasure('Ms_Time_Day'):GetStringValue() -- Получаем день str = table_1[m..d] if str ~= nil then local tip = str[1] local nick = str[2] local yb = str[3] if yb ~= nil then age = tonumber(y) - tonumber(yb) msg = tip.."\n"..nick.."\nИсполнилось "..age else msg = tip.."\n"..nick end SKIN:Bang('!ShowMeterGroup Group1') SKIN:Bang('!SetOption', 'm_Script', 'Text', msg) return 1 end end function NoRemind() table.remove(table_1, ???) end Вот не могу разобраться, как из таблицы удалить запись Изменено 27 Марта 2013 пользователем Callisto Поделиться этим сообщением Ссылка на сообщение