Test BMP Buchfahrplan

Hier werden Wünsche für zukünftige neue Funktionen der Software gesammelt.
Nachricht
Autor
Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Test BMP Buchfahrplan

#1 Beitrag von Holger Lürkens »

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

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#2 Beitrag von F. Schn. »

a) Lege eine Datei "BmpCreator.cs" mit folgendem Inhalt an:

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"));
        }
    }
}

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)

Code: Alles auswählen

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 BmpCreator.cs
f) Wenn kein Fehler kommt, kannst du die Datei mit folgendem Befehl ausführen:

Code: Alles auswählen

.\BmpCreator.exe
Edit: Powershell-Kompatiblität
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

Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Re: Test BMP Buchfahrplan

#3 Beitrag von Holger Lürkens »

Vielen Dank für das kleine Programm. Es funktioniert und arbeitet sehr schnell.

Holger

Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Re: Test BMP Buchfahrplan

#4 Beitrag von Holger Lürkens »

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:
Bild

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:
Bild

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

Benutzeravatar
Michael Springer
Beiträge: 2925
Registriert: 24.06.2002 16:22:44
Wohnort: Schwäbisch Gmünd

Re: Test BMP Buchfahrplan

#5 Beitrag von Michael Springer »

Hallo Holger,

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");
In deinem Beispiel liegen die Zusi-Daten aber im Programme-Verzeichnis. Kann das sein?

Michael

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#6 Beitrag von F. Schn. »

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:

Code: Alles auswählen

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc /platform:x86 /out:BmpCreator.exe BmpCreator.cs
[/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 schaffen

Code: Alles auswählen

.\BmpCreator.exe
zu 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.
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

Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Re: Test BMP Buchfahrplan

#7 Beitrag von Holger Lürkens »

Michael Springer hat geschrieben:Hallo Holger,

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");
In deinem Beispiel liegen die Zusi-Daten aber im Programme-Verzeichnis. Kann das sein?

Michael
Ja, bei mir liegt Zusi3 einschließlich temp-Verzeichnis unter I:\\Program Files (x86)\\Zusi3_Daten.

Leider funktioniert es immer noch nicht bei mir. Nach Eingabe von ".\BmpCreator.exe" habe ich dieses Bild:
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.

Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Re: Test BMP Buchfahrplan

#8 Beitrag von Holger Lürkens »

Jetzt funktioniert wieder alles. Vielen Dank für die Hilfe. War das früher auch schon so, dass der BmpCreator jeden Fahrtrichtungswechsel mit Fenster anzeigt und abfragt? Ich kann mich da nicht dran erinnern.
Bild

Holger

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#9 Beitrag von F. Schn. »

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

Benutzeravatar
Michael Springer
Beiträge: 2925
Registriert: 24.06.2002 16:22:44
Wohnort: Schwäbisch Gmünd

Re: Test BMP Buchfahrplan

#10 Beitrag von Michael Springer »

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

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#11 Beitrag von F. Schn. »

Hm, in der Tat...

@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

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Test BMP Buchfahrplan

#12 Beitrag von Carsten Hölscher »

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

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#13 Beitrag von F. Schn. »

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

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Test BMP Buchfahrplan

#14 Beitrag von Carsten Hölscher »

Kann ich so auch nicht sagen.
Carsten

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Test BMP Buchfahrplan

#15 Beitrag von Johannes »

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.

Benutzeravatar
Michael Springer
Beiträge: 2925
Registriert: 24.06.2002 16:22:44
Wohnort: Schwäbisch Gmünd

Re: Test BMP Buchfahrplan

#16 Beitrag von Michael Springer »

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

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#17 Beitrag von F. Schn. »

Johannes, du hast vollkommen Recht. :)
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

Benutzeravatar
Michael Springer
Beiträge: 2925
Registriert: 24.06.2002 16:22:44
Wohnort: Schwäbisch Gmünd

Re: Test BMP Buchfahrplan

#18 Beitrag von Michael Springer »

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.

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()
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

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Test BMP Buchfahrplan

#19 Beitrag von F. Schn. »

Beim Kompilieren das /platform:x86 vergessen?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Holger Lürkens
Beiträge: 3671
Registriert: 27.01.2002 11:30:41
Wohnort: Duisburg

Re: Test BMP Buchfahrplan

#20 Beitrag von Holger Lürkens »

Obwohl ich seit der letzten Benutzung außer dem Namen des Fahrplan nichts verändert habe, bekomme ich jetzt auch wieder eine Fehlermeldung.
Bild
Einen Absturz würde ich das noch nicht nennen, aber auf jede Eingabe bekomme ich eine Fehlermeldung.

Holger

Antworten