Razi Опубликовано 19 июня, 2018 Поделиться Опубликовано 19 июня, 2018 Как отображать значение в hex в editbox на языке Lua? Например считываем 4-х байтное значение в editbox. Нужно чтоб это значение отображалось в hex. И также нужно записывать из editbox в hex формате. То есть для записи в адрес, нужно вводить в editbox'е значение в hex формате. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 июня, 2018 Поделиться Опубликовано 19 июня, 2018 4 минуты назад, Razi сказал: значение в hex в editbox на языке Lua Уже было - ТЫК 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 19 июня, 2018 Автор Поделиться Опубликовано 19 июня, 2018 считывать получилось одним методом Спойлер for x = 1, 3 do CEEditsnowbt[x].Text = string.format('0%X',readInteger(0x009E93E0+x*4)) end другим методом не получилось Спойлер for x = 1, 3 do CEEditsnowbt[x].Text = tonumer(readInteger(0x009E93E0+x*4),16) end как исправить ошибку? Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 июня, 2018 Поделиться Опубликовано 19 июня, 2018 Не такой команды tonumer В CE 6.8 не работает вариант tonumber("0x9999",16). Работает tonumber("0x9999") Спойлер function DecToHex(stringValue) return string.format('0x%08X', stringValue) end function HexToDec(stringValue) return tonumber(stringValue) end function CEButton1Click(sender) UDF1.CEEdit1.Text = DecToHex(100) end function CEButton2Click(sender) local value = HexToDec(UDF1.CEEdit1.Text) print(value) end Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 19 июня, 2018 Автор Поделиться Опубликовано 19 июня, 2018 (изменено) 26 минут назад, MasterGH сказал: В CE 6.8 не работает вариант tonumber("0x9999",16). Работает tonumber("0x9999") а запись тогда как делать в адрес в hex формате? Следующий метод не работает как надо: Спойлер for x = 1, 3 do local currentCEEditsnowbt = CEEditsnowbt[x] writeInteger(0x009E93E0+x*4, string.format('0x%08X', currentCEEditsnowbt.Text)) end Изменено 19 июня, 2018 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 июня, 2018 Поделиться Опубликовано 19 июня, 2018 2 часа назад, Razi сказал: тогда как делать в адрес в hex формате? Я сделал сейчас так: 1. LUA Спойлер function CEButton1Click(sender) text= tonumber(UDF1.CEEdit1.Text, 16) writeInteger('071793B0', text) end 2. скрин: 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 июня, 2018 Поделиться Опубликовано 19 июня, 2018 2 часа назад, Razi сказал: а запись тогда как делать в адрес в hex формате? Если CE 6.8, то Спойлер for x = 1, 3 do local address = 0x009E93E0 + x * 4 local stringValue = CEEditsnowbt[x].Text local intValue = tonumber(stringValue) writeInteger(address, intValue) end Если CE 6.7 и ниже Спойлер for x = 1, 3 do local address = 0x009E93E0 + x * 4 local stringValue = CEEditsnowbt[x].Text local intValue = tonumber(stringValue,16) writeInteger(address, intValue) end В "CEEditsnowbt[x].Text" должна быть строка с префиксом "0x", т.е. "0x100" например Предлагаю использовать пошаговую отладку Lua для разбора какие значения в каких переменных. Спойлер Подробнее 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Razi Опубликовано 19 июня, 2018 Автор Поделиться Опубликовано 19 июня, 2018 (изменено) Версия CE 6.5. Получилось некоторое время назад, как раз именно так, как предлагаете: Спойлер for x = 1, 3 do local currentCEEditsnowbt = CEEditsnowbt[x] CEEditsnowbt[x].OnKeyPress = function(sender, key) timer.Enabled = false local a = tonumber(sender.Text) if (a~=nil) and isKeyPressed(VK_RETURN) then local tohex=tonumber(currentCEEditsnowbt.Text,16) --в hex writeInteger(0x009E93E0+x*4, tohex) timer.Enabled = true end return key end end А вот другие методы, чтения/записи в hex, не захотели работать. Изменено 19 июня, 2018 пользователем Razi Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 июня, 2018 Поделиться Опубликовано 23 июня, 2018 local a = 1000 UDF1.CEEdit1.Tex = string.format('%X', a) -- ( X - заглавные, x - маленькие ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения