2016-07-14 49 views
-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- } 
} 
} 
+0

你必須明確你想達到什麼!簡單地放置代碼並尋求我們的幫助不會削減它,我們需要了解您希望完成的預期行爲。 –

+0

@OrelEraki對於我來說,通過閱讀他的'僞代碼' – Denny

+0

@ Denny,我很清楚他想要達到什麼目的,我敢打賭,由於多種原因,我打賭了這種差異。 –

回答

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,它將在活動窗口中回顯結果。

再說一遍,如果還有什麼不清楚的地方,我會試着更好地解釋它。