2016-07-14 4 views
-1

Unten habe ich mein grundlegendes Ziel und den Code geschrieben, den ich bereits habe, jede Hilfe wird sehr geschätzt, da ich selbst lerne, wie IRC Scripting funktioniert, danke Jungs!

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

Sie müssen genau erklären, was Sie erreichen möchten! Einfach den Code zu setzen und nach unserer Hilfe zu fragen, wird uns nicht helfen, wir müssen verstehen, was das erwartete Verhalten ist, das Sie erreichen wollen. –

+0

@OrelEraki Für mich ist es ziemlich klar, was er zu erreichen versucht, indem er seinen 'Pseudocode' liest – Denny

+0

@Denny, ich wette den Unterschied, aus mehreren Gründen. –

Antwort

1

In Zukunft sollten Sie Ihre Frage klarer stellen.

Ihre Frage sieht so aus mIRC Search for multiple words in text file, Sie können meine Antwort dort für weitere Informationen lesen, es ist meist das gleiche, so dass ich es hier kopieren und mit Änderungen für Ihren Fall einfügen.

Um eine .txt-Datei Zeile für Zeile zu lesen, benötigen Sie eine Schleife. Um diesen Schleifentyp verwendet werden: /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 ist eine Kennung, die die Linie zurückkehrt, dass $read() abgestimmt. Es wird verwendet, um nach dem Muster in der nächsten Zeile zu suchen. Was ist in diesem Fall $date. Die Sternchen bedeuten einen Platzhalter, also alles, was dieses Datum enthält.

Im obigen Code beginnt $readn bei 0. Wir verwenden $calc(), um bei Zeile 1 zu beginnen. Jedes Spiel $read() beginnt mit der Suche in der nächsten Zeile. Wenn nach der angegebenen Zeile keine weiteren Übereinstimmungen mehr vorhanden sind, wird $read$null zurückgegeben - die Schleife wird beendet.

Der w Schalter wird ein Platzhalter bei der Suche verwenden

Der n Schalter den Text verhindert Auswertung liest, als ob es mSL Code war. In fast EVERY Fall müssen Sie den n-Schalter verwenden. Außer wenn du es wirklich brauchst. Unsachgemäße Verwendung der $ read() - Kennung ohne den "n" -Schalter könnte Ihr Skript sehr verwundbar machen.

Das Ergebnis wird in einer Variablen namens %line gespeichert, um es erneut zu verwenden, um zu überprüfen, ob $nick in der gefundenen Zeile ist. Wenn $nick gefunden wurde, wird das Ergebnis in Ihrem aktiven Fenster angezeigt.

Und noch einmal, wenn etwas unklar ist, werde ich versuchen, es besser zu erklären.