jason
发表于 2010-11-30 17:56:41
原帖由 ddid 于 2010-11-30 05:44 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
MUSH + LUA
还是很爽滴 。。。。。。 hzs
就是啊,用在嵌入脚本的情况下很好。但是要用它干点通用的活,比如这个字符串处理,就麻烦了。连个split都要。。
littleknife
发表于 2010-11-30 17:57:27
各位大神们,请给个清晰点的答案吧。jason的我没有调试环境,也没完全看懂(以为代码不全)。
我的代码错在哪里?。。yct27
jason
发表于 2010-11-30 17:58:11
原帖由 littleknife 于 2010-11-30 05:57 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
各位大神们,请给个清晰点的答案吧。jason的我没有调试环境,也没完全看懂(以为代码不全)。
我的代码错在哪里?。。yct27
你的代码说实话有点乱。可以肯定得一错误是最后剩下的部分你没处理。
ddid
发表于 2010-11-30 18:46:30
else
nowait_string_num=nowait_string_num+1
nowait_string=nowait_string..v..";"
end--if
这里没有 temp_path_table 什么事 ?
ddid
发表于 2010-11-30 18:48:49
把 Jason 的 Python code 用 Lua 重写了一遍,发现确实和你的思路差不多 。。。。。。
hzj
littleknife
发表于 2010-11-30 18:49:09
原帖由 ddid 于 2010-11-30 06:46 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
else
nowait_string_num=nowait_string_num+1
nowait_string=nowait_string..v..";"
end--if
这里没有 temp_path_table 什么事 ?
这里的思路其实就是和jason一样的,当间隔小于规定值的时候 只是累加字符到nowait_string。只不过我这里的变量名长了点,看的不清楚。yct54
littleknife
发表于 2010-11-30 18:50:19
关键是Python的,for,if 到哪里终止,没看懂。。翻译后也有问题。。yct53
ddid
发表于 2010-11-30 19:02:57
唉~,放弃去理解胡小子的代码了,直接把翻译Jason的放上来了:
str="e;e;e;w;w;w;wa(1);e;e;w;e;wa(4);u;d;e;w;e;s;sw;wa(2);e;e;e;e;w;w;u;d;sw;e;se;su;sd;"
arr = split(str, ";")
result = {}
count = 0
wait_step = 5
line = ""
for _, v in ipairs(arr) do
if string.sub(v, 1, 2) ~= "wa" then
if count >= wait_step then
table.insert(result, line)
table.insert(result, "wa(1);")
count = 0
line = ""
end --if
line = line .. v .. ";"
count = count + 1
else
if #line ~= 0 then
table.insert(result, line)
count = 0
line = ""
end --if
v = v .. ";"
table.insert(result, v)
end --if
end --for
str1 = table.concat(result)
print(str1)
trace
发表于 2010-11-30 19:09:11
要修改一下
arr=utils.split(str,";")
littleknife
发表于 2010-11-30 19:23:19
哈哈,他的代码也是错误的,我测试过啦。。。不过这个问题我已经解决啦。。。
---------运行结果如下----------------
1 e;e;e;w;w
2 wa(1)
3 w
4 wa(1)
5 e;e;w;e
6 wa(4)
7 u;d;e;w;e
8 wa(1)
9 s;sw
10 wa(2)
11 e;e;e;e;w
12 wa(1)
13 w;u;d;sw;e
14 wa(1)
15 se;su;sd