小编Jos*_*osh的帖子

条件格式化,基于整行

我搜索并阅读了与条件格式相关的答案,但我似乎无法让我的工作,所以也许我做错了.

我有一份工作表.它包含我们住所中的动物清单.我试图做的是将整行绿色(如果它们已被采用)(在"G"栏中用"X"表示).我已经=$G$2="X"=$G2="X",但都没有工作.它只会为我设置规则时处于活动状态的一行着色,而当我在另一行中输入"X"时,它什么都不做.我错过了什么?

conditional-formatting excel-2010

84
推荐指数
3
解决办法
32万
查看次数

在Lua中模拟+ =,有可能吗?

有人告诉我有关超载操作员的问题,但我甚至不确定如何开始这样做.我试图做的是改变:

table["key"]=table["key"]+12345
Run Code Online (Sandbox Code Playgroud)

table["key"]+=12345
Run Code Online (Sandbox Code Playgroud)

甚至使用一个功能,这将是美妙的.我已经搜索过,但找不到答案,所以我希望有人可以指导我或者直接回答问题.如果做它的缩写形式最终将是最短的方式,那么我想我会坚持这一点.我只是想尽可能多地保存击键,因为我确实有数百个可以实现的地方.谢谢!

lua operator-overloading

19
推荐指数
1
解决办法
2万
查看次数

C#split,返回数组中的键/值对

我是C#的新手,因此我正在寻找外行的条款.基本上,我想做的是转:

键1 = VAL1 |键2 =值2 | ... | keyN = VALN

进入数据库数组,你猜对了,key1返回val1,key2返回val2等等.我知道我可以使用split返回一个字符串,但从那时起,我就不知所措了.任何帮助将不胜感激!我希望我的意图明确,但如果您有任何疑问,请不要犹豫!

c# database split

13
推荐指数
2
解决办法
2万
查看次数

Lua 中的嵌套表和数字键

由于数字索引,我不确定这是否可能,但希望有人能指出正确的方向。

给定表:

t = { 13, 200, 12, 15, 23 }
Run Code Online (Sandbox Code Playgroud)

如何使用数字嵌套表格?

t["200"] = {"stuff", "more stuff", "even more stuff"}
Run Code Online (Sandbox Code Playgroud)

似乎不起作用,因为它会创建一个位置 200 并用 null 填充空单元格。我会添加一个字母作为后缀/前缀,但问题是试图对表进行数字排序。这是否可能,或者我是否坚持使用不同的方法?谢谢!

由于认识而略有编辑:

t["200"] = {"stuff", "more stuff", "even more stuff"}
Run Code Online (Sandbox Code Playgroud)

实际上创建了一个键“200”,而:

t[200] = {"stuff", "more stuff", "even more stuff"}
Run Code Online (Sandbox Code Playgroud)

创建索引 200,其他所有内容均为空。

lua nested lua-table

6
推荐指数
2
解决办法
3万
查看次数

使用Lua I/O函数创建新文件

我开始了解io.函数,我试图在我的代码中实现它们.我已经搜索了这个问题的答案,似乎没有给出明确的是或否,或者至少我没有看到一个.我希望有人能够知道答案,并能够帮助解决这个问题.

我想创建一个文本文件,随着时间的推移我可以写入.它基本上是一个日志,我将附加输出行.显然io.open("textfile.txt")不会创建文件,或者它出现.

有没有办法在Lua中创建一个文本文件,以后可以使用io.read/write访问?另外,在打开或创建新文本文件之前,是否需要调用io.close()?我感谢任何帮助.谢谢!

io lua text-files

5
推荐指数
1
解决办法
7536
查看次数

在lua中按索引值比较两个索引表

我试图比较两个相等长度的表和一个函数,因为我不知道有任何其他方法这样做.但是,使用以下功能,它无法注册,我也不知道为什么.我希望有人可以提供对此问题的深入了解,或者有更好的方法来比较这两个表.

这些表格使用以下代码填充:

str = "parameters determined by program (all digits)"
tableone = {}
for word in str:gmatch("%d") do table.insert(tableone,word) end
Run Code Online (Sandbox Code Playgroud)

两个表都是相同的,当然除了各个表名.表格正确填充,并在打印时正确显示.为了这个问题,这里有两个表:

tableone = {}
tabletwo = {}
for i=1,4 do table.insert(tableone, i) end
for i=1,4 do table.insert(tabletwo, i) end
Run Code Online (Sandbox Code Playgroud)

显然,这两个表将彼此相等.我写的比较索引表的函数如下:

function comparetables(t1, t2)
matchct = 0
 for i=1,#t1 do
    if t1[i] == t2[i] then
    matchct = matchct + 1
    end
if matchct == #t1 then
return true
end
end
Run Code Online (Sandbox Code Playgroud)

我试过了

print(comparetables(tableone,tabletwo))
Run Code Online (Sandbox Code Playgroud)

看它是否打印"真实"但没有运气.对我而言,它似乎应该没有问题.但事实并非如此.我错过了什么?我已经尝试过像某个人可能已经编写的table.compare函数一样的东西,但找不到这样的运气.谢谢你的任何建议!

附加信息:

我正在比较表格的原因是为了一个主人型游戏.这意味着在比较表时必须遵循以下三条规则.我创建的功能是让我开始,以为我可以从那里工作.

  1. 比较表时,如果数字匹配,则Ccount增加1.
  2. 比较表时,如果值存在于不同的索引位置,则将Pcount增加1

例如,使用值{1,3,3,4}的值表和{4,4,3,1}的猜测,它将返回Pcount为2(一个4和1)和一个Ccount为1 (三位在第三位).我认为最困难的部分之一就是要进行比较,以确认猜测中的第二个4不应该增加Pcount.

lua compare lua-table

5
推荐指数
2
解决办法
7049
查看次数

Lua:有没有办法连接"nil"值?

我在Lua中有以下功能:

function iffunc(k,str,str1)
  if k ~= 0 then
    return str .. k .. (str1 or "")
  end
end
Run Code Online (Sandbox Code Playgroud)

此功能允许我检查是否填充了值k.我实际上是用它来确定我是否要显示零值的东西.我的问题是:我正在尝试连接一个iffunc()字符串,但由于某些值为0,它会返回尝试连接nil值的错误.例如:

levellbon = iffunc(levellrep["BonusStr"],"@wStr@r{@x111","@r}") .. iffunc(levellrep["BonusInt"],"@wInt@r{@x111","@r}") .. iffunc(levellrep["BonusWis"],"@wWis@r{@x111","@r}")
Run Code Online (Sandbox Code Playgroud)

如果任何表值为0,它将返回错误.我可以很容易地在iffunc本身中放入'return 0'; 但是,我也不想要一串000.那么我怎么能在无论哪个值为零的情况下工作呢,我都不会得到那个错误?最终,我将在levellbon变量上做一个iffunc,看看是否填充了这个,但我已经找到了那个部分.我现在只需要克服这个小障碍.谢谢!

null lua concatenation

4
推荐指数
1
解决办法
2万
查看次数

需要身份验证的Lua和API(Wordnik)

我一直试图解决这个问题,我不能.我使用一个程序(CMUD),其中我广泛使用Lua脚本语言进行数据挖掘.我编写的脚本使用他们的API(不需要身份验证)从wunderground.com收集天气信息,并且我使用数据挖掘urbandictionary.com获取俚语术语.现在我正在尝试利用Wordnik的json解析器来返回单词的定义.但是,我对API很陌生,虽然我已经很好地掌握了Lua,但我仍然是新手.因此,我转向你,寻找我迫切需要的答案.

根据Wordnik API文档,验证用户的正确方法是使用以下URL:

http://api.wordnik.com/v4/account.{format}/{username}?password={password}
Run Code Online (Sandbox Code Playgroud)

{format}可以是xml或json,但我更喜欢json.使用:

print(http.request("http://api.wordnik.com/v4/account.json/username?password=password"))
Run Code Online (Sandbox Code Playgroud)

返回"未经授权"的错误.使用:

r,c = http.request{ url = "http://api.wordnik.com/v4/account.json/username?password=password", headers = {api_key = "MY_API_KEY"}}
Run Code Online (Sandbox Code Playgroud)

返回r = 1且c = 401.

我只是完全混淆了如何通过我使用的程序验证自己并通过Lua使用Wordnik的API.任何帮助将不胜感激!或者,如果你知道任何返回json格式的字典,我也会很感激这些建议!

为澄清目的:

我希望能够检索单词定义的json格式.执行直接API调用似乎不起作用,并且似乎确实需要登录(或进行身份验证).

api lua json

2
推荐指数
1
解决办法
703
查看次数

Lua:%UserProfile%访问权限

我试着搜索这些信息,但没有运气.

我试图做的是访问Lua中的变量路径,所以不必每次都将路径更改为其绝对值,我可以这样做:C:/%UserProfile%/path相反.有没有办法做到这一点?

我看到了一个luafilesystem网站,但它似乎没有做我需要它做的事情.基本上,我想做的是以下内容:

savepath = "%UserProfile%/Saves"
Run Code Online (Sandbox Code Playgroud)

如果我必须有两个步骤或只有一个步骤,只要它有效就没关系.

filesystems lua

2
推荐指数
1
解决办法
131
查看次数

协同程序,Lua的多个请求

在过去的12个小时里,我一直在研究这个问题,而我似乎无法随时随地.我甚至都不知道这是否可能,但我希望这是因为继续我的项目会有很长的路要走.

我试图做的是创建协同程序,因此我使用的特定程序不会因为无法执行异步http请求而冻结.我已经想出了如何做到这一点,尽管我对协同程序的理解仍然在"嗯?这是如何工作的?" 相.我现在的问题是能够使用正确的信息响应多个请求.例如,以下内容应产生三个单独的响应:

foo(a)
foo(b)
foo(c)
Run Code Online (Sandbox Code Playgroud)

其中foo使用里面的参数启动协同程序.如果全部单独请求,则返回正确的结果.但是,如果作为块请求,它将仅返回foo(c)结果.现在,我理解这背后的原因,但是当我作为一个块请求时,我找不到让它返回所有三个结果的方法.为了帮助理解这个问题,这里是实际的代码:

function background_weather()
local loc = url.escape(querystring)
weatherpage = http.request("http://api.wunderground.com/api/004678614f27ceae/conditions/q/" .. loc .. ".json")
wresults = json.decode(weatherpage)
--process some stuff here, mainly datamining
end
--send datamined information as a response
coroutine.yield()
end
Run Code Online (Sandbox Code Playgroud)

和协程的创建:

function getweather ()
-- see if backgrounder running
  if background_task == nil or
   coroutine.status (background_task) == "dead" then
-- not running, create it
   background_task = coroutine.create (background_weather)
-- make timer to keep it going
 AddTimer ("tickler", 0, …
Run Code Online (Sandbox Code Playgroud)

lua coroutine

2
推荐指数
1
解决办法
1935
查看次数

Lua - xterm 256 色渐变脚本

这个问题困扰了我一段时间,我不确定是否有答案。我知道有像 Love2D 这样的模块可以完成渐变,我猜它使用 RGB 着色。然而,我需要使用 xterm 256 颜色找到非常相似的东西,但我似乎无法在任何地方找到渐变贴图来帮助实现这一点。

我的猜测是,我必须创建一个“最接近 RGB 颜色”并从中创建一个渐变,将相应的 RBG 与最近的 xterm 匹配相匹配,但说实话,我什至不知道从哪里开始这。我知道Python中有一个“将xterm转换为RGB十六进制”脚本(位于此处),但由于我不了解Python,所以我不知道如何将其转换为Lua。

最终,我想做的是能够将文本或多或少地变成彩虹渐变。我目前有一个返回 xterm 颜色的函数,但它是完全随机的,并且输出可能有点难以阅读。这是我对该代码的内容。代表@x“转换为 xterm 颜色”,后面跟着一个三位数代码(001 到 255),然后是文本。

function rainbow(text)
    local rtext = ""
    local xcolor = 1
    local sbyte = 1
    for i = 1, #text do
        math.randomseed(os.time() * xcolor * sbyte)
        sbyte = string.byte(i)
        xcolor = math.random(1, 255)
        rtext = rtext .. "@x" .. string.rep("0", 3 - string.len(xcolor)) .. xcolor .. text:sub(i,i)
    end
    return rtext
end
Run Code Online (Sandbox Code Playgroud)

因此,例如,print(rainbow("Test"))会导致:

@x211T@x069e@x154s@x177t …

lua gradient colors 256color

1
推荐指数
1
解决办法
2505
查看次数

Lua:如果没有价值,那么在表格中创造价值 - 我缺少什么?

我有,我已经花了几个小时,试图找出问题,但由于Lua是还比较新的给我,我想不通为什么它不工作.

这就是我想要做的.如果我第一次敲击一个项目,它将不会出现在spikeRates表中,所以我需要添加它.如果我之前已经刺穿了这个项目,但从未使用过我喜欢的项目,那么我需要在spikeRates [itemSpiked]表中反映出来.我写的代码如下,但无法填充表格.

spikeRates={}
itemSpiked = "leather"
mySpike = "iron"

if not spikeRates[itemSpiked] then
   spikeRates[itemSpiked]={}
   spikeRates[itemSpiked][mySpike]={}
   print("This is your first time spiking "..itemSpiked.."!") 
 elseif not spikeRates[itemSpiked][mySpike] then 
   spikeRates[itemSpiked][mySpike]={Failure=0,Success=0} 
   print("This is your first time spiking "..itemSpiked.." with "..mySpike.."!")
end

for i,v in pairs(spikeRates) do 
  print(i .. ": " .. v) 
end
Run Code Online (Sandbox Code Playgroud)

当它运行时,我得到一个错误,试图连接数据库打印的零值(v).一切看起来都是正确的,或者我认为.我错过了一些完全明显的东西吗 谢谢!

lua lua-table

0
推荐指数
1
解决办法
544
查看次数