我有能力用 Lua 读取内存,但我遇到了问题。我想读取一个浮点值。
我有,我认为是一个浮点数,在看起来像这样的内存中。
Byte Array 65 B6 40 43 EC 35 87 41 51 04 9E 3F
Float Value 192.712478637695
Run Code Online (Sandbox Code Playgroud)
我知道浮点值,因为我使用的是内存编辑器。在 Lua 中,我有一个类似于 memcpy 的函数,它被称为 readmem(Address,bytes) 它返回一个整数值。
我如何使用 readmem 将字节数组读入 Lua 中的浮点数。
为了这个问题,我想你可以假设 65 中的 6 是地址 00000000。
我正在将一个 Objective-C iOS 应用程序移植到使用 Lua 的 CoronaSDK。我有一个带符号的16 位整数,我想隔离其中的高字节和低字节。在 C 中,您可以简单地执行以下操作:
uint8_t a = (dx >> 8) & 0xff;
uint8_t b = dx & 0xff;
Run Code Online (Sandbox Code Playgroud)
Lua 没有按位运算符。我怎样才能在 Lua 中做到这一点?这是用于扩展 Lua 的移动应用程序和外部二进制库,如果有的话,很可能无法在所有设备上运行。您可以建议针对此问题的任何纯 Lua 解决方案吗?
如何更改字体颜色widget.newButton?
我试过的:
playBtn = widget.newButton{
left = display.contentCenterX,
top = 0,
id = "playbutton",
label = "Play",
emboss=true,
width = 250,
height = 70,
fontSize = 30,
defaultFile = "media/button-2.png",
overFile = "media/button-2.png",
onEvent = playBtnF
}
playBtn:setTextColor( 0, 255, 255 )
Run Code Online (Sandbox Code Playgroud) 我已经测试过以时间格式而不是整数提交分数,但是当我打开排行榜时,我的分数显示为 0.03 格式,而当我在 gpgs 中创建排行榜时,它显示格式应为 00:00:00 任何想法为什么我看到这样的时间..
当我发送 75 秒时,假设采用这种格式 00:01:15 --> 我在 gpgs 排行榜中获得了 0.08。
注意:我正在使用电晕 SDK + lua
在我的脚本中,我使用库 LuaSocket 发送 XML 代码。这适用于以下代码:
local request_body = (XMLHeader..XMLBody);
local response_body = {}
local res, code, response_headers = socket.http.request
{
url = "http://blabla.com/v01/Authenticatie.svc";
method = "POST";
headers =
{
["Content-Type"] = "application/soap+xml; charset=utf-8";
["Content-Length"] = string.len(request_body);
["Accept-Encoding"] = "gzip, deflate";
["Connection"] = "Keep-Alive";
};
source = ltn12.source.string(request_body);
sink = ltn12.sink.table(response_body);
}
Run Code Online (Sandbox Code Playgroud)
但是现在我将使用带有证书的协议 HTTPS 发送 XML。我知道我可以使用 LuaSec 但如何使用?有人可以告诉我,我如何将代码修改为 HTTPS 的工作代码?
我以前遇到过这个问题,但直到现在它才真正使出色的桌面管理器变得无用。
我正在寻找如何以真棒连接到 Wifi。找到Gigamo Wifi 小工具。厉害了,怎么吃?
关于小部件的很棒的 wiki 条目并没有真正回答这个问题。
我知道我的问题很愚蠢,答案在文档中的某处,但我不知道如何阅读。我如何以及在哪里将我在网上找到的小部件添加到我很棒的 lua 文件中?
编辑:在搜索rc.lua提到的文件 henfiber在哪里时,我在 Awesome 上找到了Archlinux wiki,它将最重要的内容放在一页中。
关于 Lua 解释器
>print("This is a string
>>spread over multiline")
stdin:1: unfinished string near '"This is a'
Run Code Online (Sandbox Code Playgroud)
因为我们知道在 Lua 解释器上我们可以通过多行完成一个语句例如
>a=2
>a=a+
>>1
Run Code Online (Sandbox Code Playgroud)
这完美地工作
再次:
>print([[This is a multiline
>>string]])
This is a multiline
string
Run Code Online (Sandbox Code Playgroud)
这工作正常!!那么为什么在第一个 print() 语句中显示错误呢??
我正在寻找使用LUA检查文件夹中多个文件名的有效性。
我可以将文件名作为变量传递(定义为a.message),并且我需要脚本来运行所有正则表达式模式,如果该模式与任何一个都不匹配,请打印“我们需要警报”。
a = alarm.get ("GF91908920-49330")
if regexp (a.message,"/CCF_[0-9]{6}_[0-9]{2}.csv/") then
if regexp (a.message,"/Issues_[0-9]{4}-[0-9]{2}-[0-9]{2}.csv/") then
if regexp (a.message,"/POL_Operator_[0-9]{6}_[0-9]{2}.csv/") then
else print ("We need an alarm - ", a.message)
end
end
end
Run Code Online (Sandbox Code Playgroud)
因此,如果变量与正则表达式模式之一匹配,则很好,然后结束。如果没有,继续前进并检查是否与其他任何模式都匹配,如果找到匹配项则结束。
如果在任何正则表达式中均未找到匹配项,则打印“我们需要警报”。
我希望这很清楚。
谢谢。
您如何在Lua中实现包含卫队?因为当两个文件require相同的lua文件时,有时效果是出乎意料的。所以我想lua只处理一次文件。
我刚刚阅读了Go的一些简短教程,并编写了一个简单的程序筛。Sieve使用sieve算法来打印所有小于10000的质数,这会创建许多go例程。我得到了正确的结果,但是程序非常慢(在我的计算机上为5秒)。我还编写了实现相同算法的lua脚本和python脚本,并且运行速度更快(两者在我的计算机上均为1秒左右)。
请注意,这样做的目的是要了解go例程与其他语言(例如lua)中的协程相比的性能。该实现效率很低,一些评论指出,这不是实现Eratosthenes筛网的正确方法。是的,这是故意的。其他一些答复指出,速度慢是由打印I / O引起的。所以我注释了打印行。
我的问题是为什么我在Go中实现的筛分程序这么慢?这是代码:
package main
import (
"fmt"
"sync"
)
type Sieve struct {
id int;
msg_queue chan int;
wg *sync.WaitGroup;
}
func NewSieve(id int) *Sieve {
sieve := new(Sieve)
sieve.id = id
sieve.msg_queue = make(chan int)
sieve.wg = new(sync.WaitGroup)
sieve.wg.Add(1)
return sieve
}
func (sieve *Sieve) run() {
defer sieve.wg.Done()
myprime := <-sieve.msg_queue
if myprime == 0 {
return
}
// fmt.Printf("Sieve (%d) is for prime number %d.\n", sieve.id, myprime)
next_sieve := NewSieve(sieve.id + 1)
go next_sieve.run() …Run Code Online (Sandbox Code Playgroud)