Lionzxy 0 Опубликовано: 18 апреля, 2015 (изменено) Есть переменная типа string a='1+2+4' Мне нужно сделать так, чтобы rs.setBundledOutput принял её т.е. чтобы работало rs.setBundledOutput("right",a) Сейчас выдаёт ошибку, что это не число. Изменено 18 апреля, 2015 пользователем Lionzxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 18 апреля, 2015 Чтобы оно выдавало сигнал на белый провод, оранжевый и т.д. тогда просто коды плюсуй как числа и передавай в функцию. а = 4 + 8 + 16 а будет равно 28 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 18 апреля, 2015 Конечно не число, а строка. Тебе нужно эту строку в число преобразовать. Просто tonumber не поможет, поскольку а представляет собой не число, а арифметическое выражение. Можешь сделать функцию для разбора арифметических выражений. А можешь воспользоваться функцией loadstring a="1+2+4" n=loadstring("return "..a)() rs.setBundledOutput("right",n) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lionzxy Автор вопроса 0 Опубликовано: 18 апреля, 2015 Конечно не число, а строка. Тебе нужно эту строку в число преобразовать. Просто tonumber не поможет, поскольку а представляет собой не число, а арифметическое выражение. Можешь сделать функцию для разбора арифметических выражений. А можешь воспользоваться функцией loadstring a="1+2+4" n=loadstring("return "..a)() rs.setBundledOutput("right",n) Вы понимаете, что мне нужно сохранить в rs.setBundledOutput полную строку? Мне не надо её складывать, тоесть,чтобы в итоге rs.setBundledOutpu("right",1+2+4) Спасибо за ответ И что делает loadstring? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 18 апреля, 2015 Bundled работает по принципу бинарника 00000000 = 0 нет сигналов 00000001 = 1 сигнал только на одном цвете 00000010 = 2 сигнал на другом цвете 00000011 = 4 сигнал на обоих цветах 00000111 = 8 сигнал на 3 цветах 00001111 = 16 сигнал на 4 цветах Он как раз таки принимает число, чтобы работать с сигналами, а не стринги типа тех, что ты привел в пример их туда никак не впихнуть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lionzxy Автор вопроса 0 Опубликовано: 18 апреля, 2015 Bundled работает по принципу бинарника00000000 = 0 нет сигналов 00000001 = 1 сигнал только на одном цвете 00000010 = 2 сигнал на другом цвете 00000011 = 4 сигнал на обоих цветах Он как раз таки принимает число, чтобы работать с сигналами, а не стринги типа тех, что ты привел в пример Так как мне заставить его работать с string? Тоесть преобразовать string в понятную ему форму. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 18 апреля, 2015 Так как мне заставить его работать с string? Тоесть преобразовать string в понятную ему форму. Для начала объясни, зачем тебе было впихивать туда стринг с плюсами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lionzxy Автор вопроса 0 Опубликовано: 18 апреля, 2015 Для начала объясни, зачем тебе было впихивать туда стринг с плюсами? Чтобы оно выдавало сигнал на белый провод, оранжевый и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lionzxy Автор вопроса 0 Опубликовано: 18 апреля, 2015 тогда просто коды плюсуй как числа и передавай в функцию.а = 4 + 8 + 16 а будет равно 28 Ого. Не знал, что так можно. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 18 апреля, 2015 Да. А еще Луа вычитать может, умножать и даже страшно подумать, извлекать корни Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Lionzxy Автор вопроса 0 Опубликовано: 18 апреля, 2015 Да. А еще Луа вычитать может, умножать и даже страшно подумать, извлекать корни Да вы что?! И в квадрат возводить может? Очуметь. Такой функционал Да. А еще Луа вычитать может, умножать и даже страшно подумать, извлекать корни Просто думал, что изначально по setBundble отправляется 1+2+4, а потом разбивается по цифрам. Не думал, что оно складывает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Есть переменная типа string
a='1+2+4'
Мне нужно сделать так, чтобы rs.setBundledOutput принял её т.е. чтобы работало
rs.setBundledOutput("right",a)
Сейчас выдаёт ошибку, что это не число.
Изменено пользователем LionzxyПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах