下面我写了我的基本目标和我已经有的代码,任何帮助非常感谢,因为我正在学习自己如何IRC脚本工作,谢谢你们!
on $*:text:*test*:#: {
if ($date isin $read(test1.txt, 1)) {
if ($nick isin $read(test1.txt, 1)) { write test.txt "entire line $nick was found on in test1.txt" $1- }
}
}
下面我写了我的基本目标和我已经有的代码,任何帮助非常感谢,因为我正在学习自己如何IRC脚本工作,谢谢你们!
on $*:text:*test*:#: {
if ($date isin $read(test1.txt, 1)) {
if ($nick isin $read(test1.txt, 1)) { write test.txt "entire line $nick was found on in test1.txt" $1- }
}
}
未来,您应该让问题更清楚。
你的问题看起来像这个mIRC Search for multiple words in text file,你可以在这里阅读我的答案以获得更多信息,它大部分是相同的,所以我在这里复制并粘贴它,并对你的案例进行编辑。
要逐行读取.txt文件,您需要一个循环。要使用这种环型:/findNick <NICK>
alias findNick {
var %nick = $1
while ($read(test1.txt, nw, $+(*,$date,*), $calc($readn + 1))) {
var %line = $v1
if (%nick isin %line) {
echo -a %nick found on the line: %line
; do your stuff here
}
}
}
$readn
是一个返回匹配线的标识符。它用于开始搜索下一行的模式。在这种情况下,$date
。星号意味着一个通配符,所以任何包含该日期的东西。
在上面的代码中,$readn
从0开始。我们使用$calc()
从第1行开始。每个匹配将开始搜索下一行。如果在指定的行$read
将返回$null
之后没有更多匹配 - 终止循环。
的w
开关用于使用通配符搜索
的n
开关,防止评估它的内容,如果它是MSL代码的文本。在差不多每个的情况下,你必须使用n开关。除非你真的需要它。如果不使用'n'开关不正确地使用$ read()标识符,可能会使脚本极易受到攻击。
结果存储在名为%line
的变量中,以再次使用它来检查$nick
是否在找到的行中。如果找到$nick
,它将在活动窗口中回显结果。
再说一遍,如果还有什么不清楚的地方,我会试着更好地解释它。
你必须明确你想达到什么!简单地放置代码并寻求我们的帮助不会削减它,我们需要了解您希望完成的预期行为。 –
@OrelEraki对于我来说,通过阅读他的'伪代码' – Denny
@ Denny,我很清楚他想要达到什么目的,我敢打赌,由于多种原因,我打赌了这种差异。 –