- Download
- Dateigröße:2 KB
- Bereitgestellt:08.10.2016
- Update:27.12.2018
- Downloads:1833
Wolltest du den Inhalt des Ereignisfensters von EEP schonmal (z.B. zu dokumentarischen Zwecken) in eine Datei speichern, oder eine Fehlermeldung daraus ins Forum kopieren? Dann wirst du festgestellt haben, dass das nicht geht – den Text im Ereignisfenster kann man nur lesen, aber nicht weiterverarbeiten.
Mir ging es ähnlich, deshalb habe ich das kleine Lua-Modul PrintToFile
geschrieben. Das tut, was der Name sagt: Alle Ausgaben, die in Lua mittels print(...)
ins Ereignisfenster geschrieben werden, werden zusätzlich in eine Textdatei auf die Festplatte geschrieben. Von dort kann der Text dann einfach kopiert werden.
Die Ausgabe in der Datei kann sich von der im Ereignisfenster leicht unterscheiden, was die Nachkommastellen von Zahlen oder die Darstellung von nil
betrifft. Auch von Lua selbst erzeugte Fehlermeldungen (wie Syntax-Fehler, falsche Kontaktpunkt-Einträge oder ähnliches) werden nicht in die Datei geschrieben – da „komme ich nicht dran“. Die Ausgabe von „normalem Text“ – und das dürfte ja der größte Teil sein – klappt aber zuverlässig.
Wenn das Ereignisfenster mittels clearlog()
geleert wird, wird auch der Inhalt der Datei gelöscht.
Schnellstartanleitung
1. Installation
Nach dem Download die zip-Datei entpacken und die Installation.eep
aufrufen, oder die PrintToFile_BH2.lua
von Hand ins EEP-Verzeichnis in den Unterordner LUA
kopieren.
2. Einbinden
Füge diese Zeile an den Anfang des Anlagen-Skripts (vor dem ersten clearlog()
) ein:
require("PrintToFile_BH2")
3. Fertig
Hat das Einbinden geklappt, wird alles, was über print(...)
in das Ereignisfenster ausgegeben wird, auch in die Datei print.txt
geschrieben; diese ist dann im Resourcen- oder EEP-Ordner zu finden. Von da lassen sich alle Ausgaben problemlos kopieren.
Konfigurationsmöglichkeiten
Beim Einbinden kann das Verhalten des Skripts durch die Angabe von zusätzlichen Optionen gesteuert werden. Dazu muss die entsprechende Codezeile folgendermaßen ergänzt werden:
require("PrintToFile_BH2"){file="D:/output.txt", output=2}
Dabei werden folgende Parameter unterstützt:
f
oderfile
: Dateiname der Ausgabedatei. Die Angabe kann als absoluter Pfad oder relativ zum Resourcen- bzw. EEP-Ordner erfolgen. Standardwert ist"print.txt"
o
oderoutput
: Ausgabemodus im EEP-Ereignisfenster. Mögliche Werte:0
: keine Ausgabe (kann Sinn machen, wenn direkt die Ausgabedatei überwacht wird)1
: normale Ausgabe (Standardwert)2
: Ausgabe wie in Datei (diese kann sich von der normalen Ausgabe leicht unterscheiden)
Es müssen nur die Parameter angegeben werden, die verändert werden sollen. Folgende Zeile verwendet den vorgegebenen Dateinamen, aber unterdrückt die Ausgaben im Ereignisfenster:
require("PrintToFile_BH2"){o=0}
Changelog
- v1.0 vom 27.12.2018:
-
- Manche Fehlermeldungen werden ebenfalls in die Datei geschrieben.
Das funktioniert für alle Fehlermeldungen, die im Lua-Code mittelserror()
oderassert()
erzeugt werden (das kann auch in eingebundenen Fremd-Skripten passieren).
Das funktioniert nicht bei Syntax-Fehlern, bei falschen Kontaktpunkt-Einträgen ("attempt to call a nil value") oder ähnlichem. An diese Fehlermeldungen "komme ich nicht heran", deshalb erscheinen sie nach wie vor nur im Ereignisfenster.
- Manche Fehlermeldungen werden ebenfalls in die Datei geschrieben.
- v0.2 vom 08.10.2016:
-
- Ausgabe auch von Boolean-Werten möglich
- Konfiguration beim Einbinden (statt vor dem Einbinden)
- Zusätzliche Ausgabe-Optionen im Ereignisfenster: Original, wie in der Textdatei, oder gar nichts
- Umstellung auf lokale Variablen
- Installation per Modellinstaller
- v0.1 (veröffentlicht am 29.08.2016 im MEF):
-
- Ausgaben im Ereignisfenster werden zusätzlich in eine Datei auf die Festplatte geschrieben
- Vorgabe des Dateinamens möglich