阅读整条线上的$ nick

时间:2016-07-14 20:30:52

标签: irc mirc

下面我已经写了我的基本目标和我已经拥有的代码,我非常感谢任何帮助,因为我正在学习IRC Scripting的工作原理,谢谢你们!

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- }
 }
}

1 个答案:

答案 0 :(得分: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是一个返回$read()匹配的行的标识符。它用于开始在下一行搜索模式。在这种情况下$date。星号表示通配符,因此包含该日期的任何内容。

在上面的代码中,$readn从0开始。我们使用$calc()从第1行开始。每个匹配$read()将开始搜索下一行。如果指定的行$read之后不再有匹配项,则会返回$null - 终止循环。

w开关用于在搜索中使用通配符

n开关阻止将其读取的文本评估为mSL代码。在几乎 EVERY 的情况下,您必须使用n开关。除非你真的需要它。不正确使用$ read()标识符而不使用&#39; n&#39;切换可能会使您的脚本非常容易受到攻击。

结果存储在名为%line的变量中,以便再次使用它来检查找到的行$nick中是否有$nick。如果找到BasicButtonUI,它将在活动窗口中回显结果。

而且,如果有任何不清楚的地方,我会尝试更好地解释它。