Im iTrain-Forum hat ein Modellbahnfreund eine Excel-Lösung für das Importieren von CV-Werten aus iTrain vorgestellt. Eine gute Idee angesichts der Tatsache, dass iTrain selbst beim CSV-Export die Decodereinstellungen außen vor läßt. Da bei solchen Aufgaben die Kompatibilität zwischen MS Office und LibreOffice gegen Null geht, bleibt die Lösung nur Excel-Nutzern vorbehalten. Es musste also eine Lösung für den nicht unerheblichen Rest her.
Die iTrain-Datei darf nicht im zip-Format vorliegen. Entweder Ihr entpackt die tcd-Datei von Hand oder Ihr speichert sie aus iTrain heraus unkomprimiert ab.
Da die in LibreOffice enthaltenen XML-Filter mit dem iTrain-Format nicht umgehen können, musste ein eigens für diesen Zweck geschriebener her. Die Anweisungen, wie die Daten aus iTrain ausgelesen und in Calc importiert werden, stehen in einer XSLT-Datei. Ladet Euch diesen Filter hier herunter und speichert ihn an einem Ort Eurer Wahl.
Eine Möglichkeit, wie man auch mit den komprimierten iTrain-Dateien (tcdz) arbeiten kann, hab ich hier vorgestellt.
Dieser Filter muss jetzt in LibreOffice integriert werden.
Öffnet LibreOffice und geht auf das Menü Datei Öffnen. Im sich öffnenden Dialogfeld stellt Ihr das Dateiformat von Alle Dateien auf iTrain-Lokdekoder um.
Die Liste kann unter Umständen sehr lang sein. Dann wählt Ihr Eure iTrain-tcd-Datei aus und klickt auf Öffnen.
Ihr könnt Euch auch ein Makro für den Datenimport anlegen. Das Makro könnte folgenden Code enthalten:
sub iTrain_Lokdecoder_import rem ---------------------------------------------------------------------- rem Variablen definieren dim oDlg As Object ,oDoc As Object, sPath As String rem Rückgabewerte des Datei-Öffnen-Dialogs dim DateiListe() rem Eigenschaften für loadComponentFromURL setzen dim properties(0) as new com.sun.star.beans.PropertyValue properties(0).Name = "FilterName" rem der Name des Filters so wie er in Calc eingetragen ist properties(0).Value = "iTrain Lokdecoder" rem Dialog zum öffnen der Datei initialisieren dim MyFilterListe(0) As New com.sun.star.beans.StringPair rem Filterliste füllen MyFilterListe(0).first="iTrain Layouts" MyFilterListe(0).second="*.tcd" rem Pfad setzen sPath=ConvertToUrl("/home/uwe/iTrain/layouts") rem ###################################################### rem für Windows z.B.: rem sPath=ConvertToUrl("C:\iTrain\layouts") rem ###################################################### rem Dialog anzeigen oDlg=createUnoService("com.sun.star.ui.dialogs.FilePicker") With oDlg .setMultiSelectionMode(false) .appendFilter("Alle Dateien", "*.*") .appendFilterGroup("iTrain", MyFilterListe()) .setDisplayDirectory(sPath) .setCurrentFilter("iTrain Layouts") .setTitle("iTrain Lokdecoder importieren") End with oDlg.execute rem Datei öffnen DateiListe=oDlg.getFiles() doc = StarDesktop.loadComponentFromURL(DateiListe(0), "_blank", 0, properties()) end sub
Der Vorteil der Makrolösung liegt darin, dass der Datei-Öffnen-Dialog gleich den richtigen Dateifilter enthält und Ihr Euch gleich im richtigen Verzeichnis zur Dateiauswahl befindet.
Wie Ihr das Makro in Menüs oder Symbolleisten einbindet könnt Ihr hier nachlesen.
Die fertige Tabelle kann dann so aussehen: