Zum Inhalt springen

Fehlersuche in Scripten

  1. Grundlagen zum mIRC Scripting
  2. mIRC Befehle
  3. Variablen im mIRC Scripting
  4. Identifiers im mIRC
  5. Der Editor des mIRC
  6. mIRC Aliases Tutorial
  7. Die mIRC Popupmenüs
  8. mIRC Remote
  9. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fehlersuche <<< aktuelle Seite >>>>
  10. Abfragen im mIRC
  11. Schleifen im mIRC
  12. Timer im mIRC
  13. Special Remote Raw & CTCP
  14. mIRC Arbeiten mit Textdateien
  15. mIRC – Scripte / Addons / Module

mIRC Scripting: Fehlersuche in Scripten

Nachdem wir nun die ersten kleinen Scripte geschrieben haben, sollte wir uns darum kümmern wie man Fehler in den Scripten findet. Es gibt zwei Arten von Fehlern, das sind Syntaxfehler und Logikfehler. Syntaxfehler können sein: Eine vergessene Klammer, ein falsch geschriebener Befehl oder ein falscher Parameter. Solche Fehler sind meist sehr leicht zu finden weil mIRC bei den meisten eine Fehlermeldung erzeugt. Diese Fehlermeldung sieht in etwa wie folgt aus: 
/if: invalid format (line 2, boardtest.ini) 
Diese Fehlermeldung hält reichlich Informationen für uns bereit. In der Klammer steht die Zeile (line 2) in der ein Fehler auftrat und die Datei (boardtest.ini) in der das Script ist. Desweiteren erfahren wir das es in der Zeile eine /if Abfrage gibt welche ein falsches Format hat. Damit lässt sich der Fehler also ziemlich leicht finden. Eine Möglichkeit fehlende geschweifte Klammern zu finden ist der Button rechts oben im Editor mit den zwei geschweiften Klammern. Außerdem erzeugt ein Klammerpaar im Code immer einen Einzug, so wie er auch hier im Tutorial gezeigt wird. Somit lassen sich fehlende Klammern auch leicht durch die fehlenden Einzüge im Scriptcode entdecken. Das wäre eigentlich alles zu Syntaxfehlern.

 

Logikfehler finden

Bei Logikfehler ist die Suche schon etwas aufwendiger. Dazu nehmen wir als Erstes mal ein Beispielskript welches wir später mit /echo Befehlen ausstatten, um den Ablauf in allen Einzelheiten zu prüfen.

on 1:TEXT:!tipp:#Testraum:{ if ($read(Mitglieder.txt,s,$nick)) { var %tipp $read(Tipps.txt) msg $chan Dein Tipp lautet: %tipp } }

Dies ist eine simple Funktion die im Channel #Testraum Tipps an Mitglieder ausgibt. Wie die Textdateien genau aussehen oder die Ausgabe dieser Funktion muss uns dabei nicht interessieren. Wir wollen aber nun wissen ob die Funktion richtig läuft oder warum nicht. Dazu bauen wir in die Funktion diverse /echo Befehle ein, um die Zustände und Abläufe genau zu prüfen. Hier jetzt also das gleiche Script mit den /echo Befehlen.

on 1:TEXT:!tipp:#Testraum:{ echo -s Tipps triggert! echo -s Mitgliedstatus ist: $read(Mitglieter.txt,s,$nick) if ($read(Mitglieder.txt,s,$nick)) { echo -s Mitgliedtest bestanden! var %tipp $read(Tipps.txt) echo -s Variable tipp ist: %tipp msg $chan Dein Tipp lautet: %tipp } }

Nun können wir genau sehen wie das Script abläuft und welche Zustände die Identifier und Variablen haben. Ich erkläre nun die /echo Befehle im einzelnen. Alle /echo Meldungen werden im Statusfenster ausgegeben. Liest man die erste Meldung (Tipps triggert!) weiss man das der Remote ausgelöst wurde. Die zweite und die dritte Meldung (Mitgliedsstatus ist:…; Mitgliedtest bestanden!) könnte man auch abwechselnd einsetzen. Bei der letzten Meldung (Variable tipp ist:…) wird der Wert der Variablen ausgegeben also der Tipp der auch im Raum erscheinen sollte. Ich hoffe es ist euch klar geworden warum ich die einzelnen Echos eingebaut habe. Ihr müsst in der Praxis wissen wo es Sinn macht diese /echo Befehle einzubauen um die Zustände und Werte zu prüfen. Ansonsten ist es wichtig das Script nicht nur auf richtigen Ablauf zu prüfen, sondern auch auf falschen. Das heißt das auch mal ein Nichtmitglied !tipp eingeben sollte um zu sehen ob das Script nicht ausgeführt wird. Dieser Test ist mindestens genauso wichtig wie die richtige Ausführung zu prüfen.

So viel zur Fehlerprüfung. Und verlasst euch darauf ihr werdet Fehler machen, wie jeder Andere auch, einschließlich mir. Deshalb ist die Fehlersuche so wichtig und auch das lernen wie man Scripte richtig testet.

mIRC Workshop: Tutorial: Abfragen im mIRC