Test BMP Buchfahrplan
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg
Test BMP Buchfahrplan
Ich vermisse das Erstellen aller Buchfahrpläne als BMP-Bild im temp-Ordner. Zum manuellen nach bearbeiten der Buchfahrpläne muss ich manchmal eine höhere zweistellige Zahl an Buchfahrplänen im Fahrplaneditor (Buchfahrplan testen - Buchfahrplan aus xml generieren...) anklicken. Diese Funktion benutze ich sehr oft. Ein abschließender Gesamtüberblick über alle Buchfahrpläne nach Fertigstellung der Fahrpläne ist damit auch nicht möglich. Es wäre toll, wenn es einen Button gäbe, nicht nur einen sondern alle Buchfahrpläne mit einem Klick zu generieren.
Holger
Holger
Re: Test BMP Buchfahrplan
a) Lege eine Datei "BmpCreator.cs" mit folgendem Inhalt an:
b) Ersetzte die Pfade "C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll" (DLL), "C:\\Program Data\\Zusi\\Timetables\\Deutschland\\Ruhrtalbahn\\Fahrplan1981_04Uhr-12Uhr" (Quellordner), "C:\\Program Data\\Zusi\\temp\\TestBMP" (Zielordner) und "C:\\Program Data\\Zusi\\" (Zusi-Datenverzeichnis) so, wie es auf deinem System passt.
c) Drücke in dem Ordner, wo du die Datei gespeichert hast, bei gedrückt gehaltener Shift-Taste mit der rechten Maustaste auf eine freie Fläche.
d) Wähle "Eingebeaufforderung hier öffnen"
e) Kopiere folgendes in die Konsole: (Edit: Über das Kontextmenü, Strg+V funktioniert hier nicht)
f) Wenn kein Fehler kommt, kannst du die Datei mit folgendem Befehl ausführen:
Edit: Powershell-Kompatiblität
Edit: exportlog.txt-Hinweis
Code: Alles auswählen
public class BmpCreator
{
[System.Runtime.InteropServices.DllImport("C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll",
EntryPoint="Config", CallingConvention=System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern void Config(System.IntPtr AppHandle);
[System.Runtime.InteropServices.DllImport("C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll",
EntryPoint="Autor", CallingConvention=System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern string Autor();
[System.Runtime.InteropServices.DllImport("C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll",
EntryPoint="Bezeichnung", CallingConvention=System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern string Bezeichnung();
[System.Runtime.InteropServices.DllImport("C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll",
EntryPoint="dllVersion", CallingConvention=System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern string dllVersion();
[System.Runtime.InteropServices.DllImport("C:\\Program Files (x86)\\Zusi\\_InstSetup\\lib\\timetable\\Buchfahrplan_DB_1979.dll",
EntryPoint="FahrplanErzeugen", CallingConvention=System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern string FahrplanErzeugen(string Arbeitsverz, string xmlDateiAbsolut, string bmpDateiAbsolut);
public static void Main()
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("C:\\Program Data\\Zusi\\Timetables\\Deutschland\\Ruhrtalbahn\\Fahrplan1981_04Uhr-12Uhr");
System.IO.FileInfo[] files = dir.GetFiles("*.timetable.xml");
System.IO.DirectoryInfo outputDir = new System.IO.DirectoryInfo("C:\\Program Data\\Zusi\\temp\\TestBMP");
outputDir.Create();
foreach(System.IO.FileInfo fi in files)
{
System.Console.WriteLine(FahrplanErzeugen("C:\\Program Data\\Zusi\\", //Wenn der Pfad mit "\\" endet, werden die Meldungen
//nach temp\\exportlog.txt geschrieben, andernfalls gibt es Meldungsboxen.
fi.FullName, outputDir.FullName + "\\" + fi.Name + ".bmp"));
}
}
}
c) Drücke in dem Ordner, wo du die Datei gespeichert hast, bei gedrückt gehaltener Shift-Taste mit der rechten Maustaste auf eine freie Fläche.
d) Wähle "Eingebeaufforderung hier öffnen"
e) Kopiere folgendes in die Konsole: (Edit: Über das Kontextmenü, Strg+V funktioniert hier nicht)
Code: Alles auswählen
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 BmpCreator.cs
Code: Alles auswählen
.\BmpCreator.exe
Edit: exportlog.txt-Hinweis
Zuletzt geändert von F. Schn. am 01.01.2018 13:32:00, insgesamt 6-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg
Re: Test BMP Buchfahrplan
Vielen Dank für das kleine Programm. Es funktioniert und arbeitet sehr schnell.
Holger
Holger
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg
Re: Test BMP Buchfahrplan
Ich hatte den BmpCreator recht häufig und ohne Probleme benutzt. Als ich ihn jetzt nach mehreren Monaten Pause wieder benutzen wollte, funktioniert er nicht mehr. Die Dateipfade müssten stimmen. Hier mal das Bild mit meinen Einstellungen:
Nach der ersten Eingabeaufforderung "C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 BmpCreator.cs" scheint noch alles in Ordnung zu sein. Nach Eingabe von "BmpCreator.exe" kommt dann diese Fehlermeldung im PowerShell Fenster:
Klicke ich die Datei BmpCreator.exe im Ordner Zusi3_Daten an, dann kommt die Meldung "BmpCreator.exe funktioniert nicht mehr". Das war früher nicht der Fall. Nachdem ich jetzt alle möglichen Varianten durchprobiert habe bin ich ratlos, warum der BmpCreator nicht mehr funktioniert.
Holger
Nach der ersten Eingabeaufforderung "C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 BmpCreator.cs" scheint noch alles in Ordnung zu sein. Nach Eingabe von "BmpCreator.exe" kommt dann diese Fehlermeldung im PowerShell Fenster:
Klicke ich die Datei BmpCreator.exe im Ordner Zusi3_Daten an, dann kommt die Meldung "BmpCreator.exe funktioniert nicht mehr". Das war früher nicht der Fall. Nachdem ich jetzt alle möglichen Varianten durchprobiert habe bin ich ratlos, warum der BmpCreator nicht mehr funktioniert.
Holger
- Michael Springer
- Beiträge: 2932
- Registriert: 24.06.2002 16:22:44
- Wohnort: Schwäbisch Gmünd
Re: Test BMP Buchfahrplan
Hallo Holger,
im Abschnitt Main liegen die Zusi-Daten bei mir unter C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp
In deinem Beispiel liegen die Zusi-Daten aber im Programme-Verzeichnis. Kann das sein?
Michael
im Abschnitt Main liegen die Zusi-Daten bei mir unter C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp
Code: Alles auswählen
public static void Main()
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp");
System.IO.FileInfo[] files = dir.GetFiles("*.timetable.xml");
System.IO.DirectoryInfo outputDir = new System.IO.DirectoryInfo("C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp");
Michael
Re: Test BMP Buchfahrplan
Kann das Problem bestätigen. Liegt offensichtlich an PowerShell, er legt die exe irgendwohin, nur nicht dahin, wo es cmd macht. Abhilfe war mit /out: möglich:
[/x]
Ähm... Quark...
Das Problem liegt aber trotsdem an PowerShell... Moment...
Also, das Problem müsste vermutlich sein, dass PowerShel den aktuellen Pfad nicht nach exes durchsucht. Abhilfe sollte schaffenzu verwenden, mein PC weigert sich aber gerade, mich das sowohl in cmd als auch in PS testen zu lassen...
Edit: So, hat jetzt doch noch geklapt. Also: wie gesagt: .\ an den Ausführungsbefehl vorne anstellen. Dann klappt es sowohl mit PS als auch mit cmd. Anleitung oben ist geupdated.
Code: Alles auswählen
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 /out:BmpCreator.exe BmpCreator.cs
Ähm... Quark...
Das Problem liegt aber trotsdem an PowerShell... Moment...
Also, das Problem müsste vermutlich sein, dass PowerShel den aktuellen Pfad nicht nach exes durchsucht. Abhilfe sollte schaffen
Code: Alles auswählen
.\BmpCreator.exe
Edit: So, hat jetzt doch noch geklapt. Also: wie gesagt: .\ an den Ausführungsbefehl vorne anstellen. Dann klappt es sowohl mit PS als auch mit cmd. Anleitung oben ist geupdated.
Zuletzt geändert von F. Schn. am 19.12.2017 19:07:31, insgesamt 6-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg
Re: Test BMP Buchfahrplan
Ja, bei mir liegt Zusi3 einschließlich temp-Verzeichnis unter I:\\Program Files (x86)\\Zusi3_Daten.Michael Springer hat geschrieben:Hallo Holger,
im Abschnitt Main liegen die Zusi-Daten bei mir unter C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp
In deinem Beispiel liegen die Zusi-Daten aber im Programme-Verzeichnis. Kann das sein?Code: Alles auswählen
public static void Main() { System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp"); System.IO.FileInfo[] files = dir.GetFiles("*.timetable.xml"); System.IO.DirectoryInfo outputDir = new System.IO.DirectoryInfo("C:\\Users\\Public\\Documents\\Zusi_SVN\\Temp");
Michael
Leider funktioniert es immer noch nicht bei mir. Nach Eingabe von ".\BmpCreator.exe" habe ich dieses Bild:
Holger
Ich habe bei mir den Fehler gefunden. Es war noch der alte Name der Fahrplandatei im BmpCreator. Der Fahrplan läuft jetzt unter Ruhrtalbahn_Fahrplan1981_04Uhr-12Uhr.
Holger
Zuletzt geändert von Holger Lürkens am 19.12.2017 19:49:54, insgesamt 1-mal geändert.
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg
Re: Test BMP Buchfahrplan
Also mein Code-Anteil kann eigentlich gar keine Messageboxen erstellen. Passiert das auch, wenn du den Zug mit Zusi startest? (Ich würde mal das auf die DLL 1979 schieben.)
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Michael Springer
- Beiträge: 2932
- Registriert: 24.06.2002 16:22:44
- Wohnort: Schwäbisch Gmünd
Re: Test BMP Buchfahrplan
Das war schon immer so. Ist bei mir auch so. Jeder Fahrtrichtungswechsel benötigt 1x Enter mit der 1979er DLL. Jens DLL braucht das nicht, die scheint den XML-Knoten zu kennen.
Michael
Michael
Re: Test BMP Buchfahrplan
Hm, in der Tat...
@Carsten: Zusi selbst schaft es irgendwie die Meldungen der DLL zu unterdrücken. Wie funktioniert das?
@Carsten: Zusi selbst schaft es irgendwie die Meldungen der DLL zu unterdrücken. Wie funktioniert das?
Zuletzt geändert von F. Schn. am 20.12.2017 20:33:22, insgesamt 1-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Carsten Hölscher
- Administrator
- Beiträge: 33448
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Test BMP Buchfahrplan
Habt Ihr denn nicht die 79er dll vom November 2017 am Start? Die sollte das xml-Format kennen.
Kann mir sonst mal jemand eine timetable.xml-Datei schicken, die das Problem erzeugt?
Carsten
Kann mir sonst mal jemand eine timetable.xml-Datei schicken, die das Problem erzeugt?
Carsten
Re: Test BMP Buchfahrplan
Ah, nein, in dem Fall bin ich noch auf der 3.1.3.0. Aber die Fragestellung bleibt gleich: Warum kann Zusi die Meldungen der DLL unterdrücken? Zusi arbeitet ja mit den selben Daten und der selben DLL wie das Script auch.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Carsten Hölscher
- Administrator
- Beiträge: 33448
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Test BMP Buchfahrplan
Kann ich so auch nicht sagen.
Carsten
Carsten
- Johannes
- Beiträge: 3203
- Registriert: 14.03.2009 22:36:06
- Aktuelle Projekte: Zusitools (http://git.io/zusitools)
Re: Test BMP Buchfahrplan
Eine moegliche Fehlerquelle ist, dass das Zusi-Datenverzeichnis (erster Parameter der FahrplanErzeugen-Funktion) mit abschliessendem Backslash angegeben werden muss. Wenn man das nicht tut, scheitert er bei dem Versuch, den absoluten Pfad der Datei "Temp\exportlog.txt" zu ermitteln -- er bastelt sich dann etwas in der Art "C:\Users\Public\Documents\ZusiTemp\exportlog.txt" zusammen -- und gibt vermutlich ersatzweise die Fehlermeldung im Dialogfenster aus.
- Michael Springer
- Beiträge: 2932
- Registriert: 24.06.2002 16:22:44
- Wohnort: Schwäbisch Gmünd
Re: Test BMP Buchfahrplan
Die Meldung tritt nur bei wendenden Zügen auf. Bei Zügen ohne Wende läuft alles glatt mit dem Erstellen und dem Rendern des Bitmaps. Wäre das ein Pfad-Problem müssten doch alle Züge diese Meldung bringen, oder?
Michael
Michael
Re: Test BMP Buchfahrplan
Johannes, du hast vollkommen Recht.
Habe den Code oben um einen Hinweis ergänzt.
Habe den Code oben um einen Hinweis ergänzt.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
- Michael Springer
- Beiträge: 2932
- Registriert: 24.06.2002 16:22:44
- Wohnort: Schwäbisch Gmünd
Re: Test BMP Buchfahrplan
Hallo,
ich habe einen neuen Rechner mit Windows10 und auch Schmerzen mit BmpCreator. BmpCreator crasht sofort beim Starten. Kurioserweise TifCreator geht ohne Probleme im gleichen Verzeichnis.
Markiere und kopiere ich den DLL-Pfad C:\Program Files (x86)\Zusi3\_InstSetup\lib\timetable\Buchfahrplan_DB_1979.dll aus der Ausgabe in den Explorer, sagt Windows sie versuchen eine DLL zu öffnen, bla bla. Also die Datei liegt an dem Ort, warum findet er die dann nicht? Oder fehlen mir auf dem neuen Rechner weitere Abhängigkeiten?
Michael
ich habe einen neuen Rechner mit Windows10 und auch Schmerzen mit BmpCreator. BmpCreator crasht sofort beim Starten. Kurioserweise TifCreator geht ohne Probleme im gleichen Verzeichnis.
Code: Alles auswählen
PS C:\Users\Public\Documents\Zusi_ALL\temp> .\bmpcreator
Unbehandelte Ausnahme: System.DllNotFoundException: Die DLL "C:\Program Files (x86)\Zusi3\_InstSetup\lib\timetable\Buchfahrplan_DB_1979.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von n) kann nicht geladen werden.
bei BmpCreator.FahrplanErzeugen(String Arbeitsverz, String xmlDateiAbsolut, String bmpDateiAbsolut)
bei BmpCreator.Main()
Michael
Re: Test BMP Buchfahrplan
Beim Kompilieren das /platform:x86 vergessen?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
-
- Beiträge: 3678
- Registriert: 27.01.2002 11:30:41
- Wohnort: Duisburg