[erledigt] PerZufallUebernehmen doppelt geschrieben

Hier bitte Programmierfehler der Zusi-Software melden.
Antworten
Nachricht
Autor
jonathanp
Beiträge: 284
Registriert: 01.06.2015 14:11:25
Aktuelle Projekte: http://www.zusidatenbank.de/
Wohnort: BW Schöneweide

[erledigt] PerZufallUebernehmen doppelt geschrieben

#1 Beitrag von jonathanp »

In mehreren Fahrplänen des Pakets 107 gibt es .trn Dateien, in dem das Attribute PerZufallUebernehmen doppelt geschrieben ist - das ist in XML nicht erlaubt. Ich vermute, es ist/war ein Fehler im Fahrplan-Editor hier.

Code: Alles auswählen

<FahrzeugVarianten Bezeichnung="Zans95 - 1x beladen (Zufall 80%)" PerZufallUebernehmen="1" PerZufallUebernehmen="1" ZufallsWert="0.8" FzgPosition="9">
<FahrzeugInfo IDHaupt="1" IDNeben="2">
<Datei Dateiname="RollingStock\Deutschland\Epoche5\Gueterwagen\Z-Wagen\Zans_95\Zans95.rv.fzg"/>
</FahrzeugInfo>
<FahrzeugInfo IDHaupt="3" IDNeben="2">
<Datei Dateiname="RollingStock\Deutschland\Epoche5\Gueterwagen\Z-Wagen\Zans_95\Zans95.rv.fzg"/>
</FahrzeugInfo>
</FahrzeugVarianten>
Ingesamt haben mehr als 2000 Dateien diese Fehler - hier ist eine Liste

Ich würde vorschlagen, dass vor der Freigabe eines Pakets alle XML-Dateien mit einem Tool wie xmllint auf ihre Gültigkeit überprüft werden sollten.

--- Info ---
Als [wiedereröffnet] markiert von Max Senft am 26.12.2020 19:33.
Als [erledigt] markiert von Carsten Hölscher am 24.09.2020 21:27:21.
Zuletzt geändert von Carsten Hölscher am 27.12.2020 10:06:44, insgesamt 3-mal geändert.
Autor - Zusi 3 C++ Client, zusidatenbank.de - Das Zusi3 Addon-Datenbank

Benutzeravatar
Holger Maaß
Beiträge: 1037
Registriert: 18.07.2016 16:56:45
Aktuelle Projekte: TriFan/ZusiOSBridge
ZusiMeter 2021
ZusiStart
ZusiObjektAlbum
nette Tools für nette Zusianer
Wohnort: Berlin

Verletzung der XML-Spezifikation in .trn-Datei

#2 Beitrag von Holger Maaß »

Hallo allerseits,

im aktuellen Zusi-Datenbestand kommt es in 6131 .trn-Dateien zur Verletzung der XML-Spezifikation. Eine Zeile wie

Code: Alles auswählen

<FahrzeugVariante Bezeichnung="neu" PerZufallUebernehmen="1" PerZufallUebernehmen="1" ZufallsWert="0.5" FzgPosition="1">
darf in einer XML-Datei nicht vorkommen. Ein Attribut darf nicht doppelt angegeben werden, auch nicht mit unterschiedlichen Werten. Dadurch fallen externe Programm, die das Parsen einer XML-Datei durch .Net-Framework erledigen, auf die Nase. Gewaltig sogar.

Gruß
Holger
If you can't fix it with a hammer, it might be an electrical problem ...
Wenn es auch das nicht ist, schreibe an service ät zusi-tools punkt org.

Benutzeravatar
Michael_Poschmann
Beiträge: 19877
Registriert: 05.11.2001 15:11:18
Aktuelle Projekte: Modul Menden (Sauerland)
Wohnort: Str.Km "1,6" der Oberen Ruhrtalbahn (DB-Str. 2550)

Re: Verletzung der XML-Spezifikation in .trn-Datei

#3 Beitrag von Michael_Poschmann »

Habe mir mal einen Ruhrtal-Fahrplan (1981, ab 4 Uhr) vorgenommen, dort tritt die Fehlcodierung 981 mal auf.
Entfernt man diese probehalber durch verzeichnisweites Suchen und Ersetzen (@ Holger Lürkens, habe es nicht eingecheckt)., lädt Zusi.exe auf den ersten Blick ohne Fehlermeldung den nunmehr spezifikationskonformen Fahrplan.

Jetzt würde mich natürlich interessieren, wie das Problem da reingekommen ist. Bringt der Fahrplaneditor von Zusi das mit, oder ist das ein Ergebnis von manueller Nacharbeit der trn-Dateien in externen Texteditoren?

Unbeschadet dessen sollte das Hoppala natürlich gelegentlich bereinigt bzw. von Zusi direkt unterbunden werden.

Grüße
Michael

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

Re: Verletzung der XML-Spezifikation in .trn-Datei

#4 Beitrag von F. Schn. »

Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Max Senft
Administrator
Beiträge: 3004
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#5 Beitrag von Max Senft »

Danke F. Schn. - Themen wurden zusammengeführt und Thementitel nochmal angepasst.

Gruß
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#6 Beitrag von F. Schn. »

Interessant wäre natürlich, ob das Problem durch neu abspeichern behoben ist. In dem Fall wäre es vermutlich erledigt, und der Fahrplan ein Spät-Fallout. :P
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Max Senft
Administrator
Beiträge: 3004
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#7 Beitrag von Max Senft »

Hi,

nachdem es hier im Thread keine Info darüber gab, inwiefern das Problem gelöst wurde, also ob damals nur der Editor korrigiert wurde oder ob auch Dateien gefixt wurden, die ggf. beeits im offiziellen Bestand waren, ist die Frage letztendlich unerheblich.

Fakt ist, dass es weiterhin Dateien gibt, die inkorrekt sind und prinzipiell zum gleichen Bugreport gehören.

Wenn das Problem durch erneutes Abspeichern behoben ist, dann ist zumindest der Editor in Ordnung. Das ist aber eben nur die halbe Miete.

Gruß
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#8 Beitrag von Holger Lürkens »

Michael hat geschrieben:
Jetzt würde mich natürlich interessieren, wie das Problem da reingekommen ist. Bringt der Fahrplaneditor von Zusi das mit, oder ist das ein Ergebnis von manueller Nacharbeit der trn-Dateien in externen Texteditoren?
Die Zugzusammenstellungen mache ich grundsätzlich mit dem Fahrplaneditor. Einzige Ausnahme ist, wenn ich mal einen kompletten Zug kopiere. Den Fehler muss der Fahrplaneditor reingebracht haben.

Holger

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#9 Beitrag von Holger Lürkens »

Ich habe mal mehrere alte Fahrpläne, an denen ich seit mehr als einem Jahr nichts geändert habe mit dem gleichen Zug in aktuellen Fahrplänen verglichen. Obwohl ich an der Zugbildung nichts geändert habe ist in den aktuellen Plänen die Doppelung und in den alten Fahrplänen nicht.

Holger

Edit: Ich habe noch etwas rumprobiert. Durch einfaches abspeichern kann man die Doppelung zumindest jetzt nicht erzeugen. Bei mir sind die Fahrpläne Hagen - Kassel 1981, Lehrte - Bardowick 2018 und Marschbahn 2018 davon betroffen. Wenn ein Zug das hat, dann haben nach bisherigen Versuchen alle anderen Züge dieses Fahrplan mit Zufallseintrag auch diese Doppelung. Andere Fahrpläne die ich in den letzten Monaten bearbeitet habe, wie zum Beispiel Sorsum - Kassel 2013 haben nicht diesen Fehler.
Zuletzt geändert von Holger Lürkens am 26.12.2020 22:54:59, insgesamt 1-mal geändert.

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#10 Beitrag von Carsten Hölscher »

Also was passiert, wenn man einen fehlerhaften Plan neu abspeichert? Ist er dann korrekt?
Carsten

Benutzeravatar
Holger Maaß
Beiträge: 1037
Registriert: 18.07.2016 16:56:45
Aktuelle Projekte: TriFan/ZusiOSBridge
ZusiMeter 2021
ZusiStart
ZusiObjektAlbum
nette Tools für nette Zusianer
Wohnort: Berlin

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#11 Beitrag von Holger Maaß »

Hallo allerseits,

ich bin bereit, ein kleines Tool zu schreiben, welches die fehlerhaften Zugdateien in wohlgeformtes XML überführt. Also in praxi bin ich quasi schon dabei ;)

Gruß
Holger

@Holger von Holger, der kurze Dienstweg:

In der Datei ...\Salzkotten_Kassel_Ruhrtalbahn\Salzkotten_Bestwig-Kassel_Fahrplan1981_12Uhr_19Uhr\Dstg80270.trn fehlt in Zeile 68 das abschließende '>'.
Zuletzt geändert von Holger Maaß am 26.12.2020 23:52:45, insgesamt 1-mal geändert.
If you can't fix it with a hammer, it might be an electrical problem ...
Wenn es auch das nicht ist, schreibe an service ät zusi-tools punkt org.

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#12 Beitrag von Holger Lürkens »

Hallo Holger,

komisch, bei mir ist der Fehler auch in Zusi-Data, aber in meinem SVN-Ordner ist alles richtig.

Zusi-Data
Bild

Zusi-SVN
Bild

Danke, ich werde es noch mal neu einreichen.

Holger

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

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#13 Beitrag von Holger Lürkens »

Carsten hat geschrieben:
Also was passiert, wenn man einen fehlerhaften Plan neu abspeichert? Ist er dann korrekt?
Gerade ausprobiert, beim abspeichern des Fahrplan wird der doppelte Eintrag gelöscht.

Holger

Benutzeravatar
Holger Maaß
Beiträge: 1037
Registriert: 18.07.2016 16:56:45
Aktuelle Projekte: TriFan/ZusiOSBridge
ZusiMeter 2021
ZusiStart
ZusiObjektAlbum
nette Tools für nette Zusianer
Wohnort: Berlin

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#14 Beitrag von Holger Maaß »

Hmm, das wären dann 2672 mal den Fahrplan laden und wieder abspeichern. Und vorher musst du die Fehlerhaften erstmal alle finden. Das Tool ist auf gutem Weg ...

Gruß
Holger

@Holger von Holger: ich würde das '>' dann gleich noch in die Datei schreiben, okay?
If you can't fix it with a hammer, it might be an electrical problem ...
Wenn es auch das nicht ist, schreibe an service ät zusi-tools punkt org.

Benutzeravatar
Holger Maaß
Beiträge: 1037
Registriert: 18.07.2016 16:56:45
Aktuelle Projekte: TriFan/ZusiOSBridge
ZusiMeter 2021
ZusiStart
ZusiObjektAlbum
nette Tools für nette Zusianer
Wohnort: Berlin

Re: [wiedereröffnet] PerZufallUebernehmen doppelt geschriebe

#15 Beitrag von Holger Maaß »

Hier ist das versprochene Tool:

Download Zusi-Patsch

Viel gibt's dazu nicht zu sagen. Beim Klicken auf "Los geht's" werden in rund 2670 Dateien das/die doppelte(n) Attribut(e) "PerZufallUebernehmen" korrigiert. Außerdem wird das oben erwähnte fehlende Zeichen '>' in die eine Datei geschrieben. Alle betroffenen Original-Dateien werden in in "*.trn.err" umbenannt und für die Korrektur werden neue Dateien mit dem alten Namen angelegt.

"Rückgängig" bewirkt, dass - äh - fällt mir gerade nicht ein - oh je ;).

Wer etwas eng mit Plattenplatz ist, kann mit "Backup-Dateien löschen" die angelegten ".trn.err"-Dateien endgültig von der Platte fegen. Da kommt einiges zusammen.

Abschließend noch eine Frage:

Hier in diesem Thread ist der Link zu dem Tool nicht so gut aufgehoben, oder? Wie machen wir es denn am Besten?

Gruß
Holger
If you can't fix it with a hammer, it might be an electrical problem ...
Wenn es auch das nicht ist, schreibe an service ät zusi-tools punkt org.

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

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#16 Beitrag von Carsten Hölscher »

Ich werde das einmal über den offiziellen Bestand jagen und die Fahrplbauer tun das bitte mit ihren Arbeitsverzeichnissen. Wenn der Fehler dann ausgmerzt ist, wird er nicht wieder neu auftauchen.

Carsten

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

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#17 Beitrag von Holger Lürkens »

Da hauptsächlich meine Fahrpläne betroffen waren, soll ich die betroffenen Fahrpläne zur Berichtigung einreichen?

Holger

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

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#18 Beitrag von Carsten Hölscher »

Ich mache ein Paekt 111 mit neu gerechneten RAdien und dem Ergebnis von Holgers Tool. Keine weiteren Einreichungen nötig.

Carsten

jonathanp
Beiträge: 284
Registriert: 01.06.2015 14:11:25
Aktuelle Projekte: http://www.zusidatenbank.de/
Wohnort: BW Schöneweide

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#19 Beitrag von jonathanp »

Meine Lösung von damals steht unten. Vielleicht hätte ich dir die Arbeit bis 4 Uhr morgens ersparen können Holger 8)

Seitdem lasse ich es automatisch laufen, daher habe ich es nicht bemerkt, dass das Problem züruck war..

Code: Alles auswählen

#!/usr/bin/python

import re
import os

zusi_dir = "C:\\Program Files (x86)\\Zusi3\\_ZusiData"
out_dir = "C:\\development\\zusi_fixed"

def removeDoppel(input):
  prog = re.compile(r'(PerZufallUebernehmen="[0-9\.]+") (PerZufallUebernehmen="[0-9\.]+")')

  output = list()
  fixed = False

  for l in input:
      s = l.decode("utf-8")
      r = prog.search(s)
      if r:
        s = s[0:r.start(1)] + s[r.end(1):]
        fixed = True
      output.append(s.encode("utf-8"))

  return b"".join(output), fixed

for scanpath, dirs, files in os.walk(zusi_dir, topdown=False):
    for name in files:
        if name.endswith(".trn"):
            full_path = os.path.join(scanpath, name)
            out_path = os.path.join(out_dir, os.path.relpath(full_path, zusi_dir))
            with open(full_path, 'rb') as xml_file:
                fixed_xml, removed = removeDoppel(xml_file)
                if removed:
                    print("Fixed: ", os.path.dirname(out_path))
                    os.makedirs(os.path.dirname(out_path), exist_ok=True)
                    with open(out_path, 'wb') as out_file:
                        out_file.write(fixed_xml)
Zuletzt geändert von jonathanp am 27.12.2020 10:55:03, insgesamt 1-mal geändert.
Autor - Zusi 3 C++ Client, zusidatenbank.de - Das Zusi3 Addon-Datenbank

Benutzeravatar
Holger Maaß
Beiträge: 1037
Registriert: 18.07.2016 16:56:45
Aktuelle Projekte: TriFan/ZusiOSBridge
ZusiMeter 2021
ZusiStart
ZusiObjektAlbum
nette Tools für nette Zusianer
Wohnort: Berlin

Re: [erledigt] PerZufallUebernehmen doppelt geschrieben

#20 Beitrag von Holger Maaß »

Python ist schööön, gell? Leider hat kaum ein "Normalbürger" Python auf seinem Windows-Rechner. Elegante Lösung!

Durch einen Hilfeschrei, der mich gerade erreicht hat, bin ich noch auf eine kleine Unaufmerksamkeit aufmerksam gemacht worden. Windows setzt beim Herunterladen ein Flag, welchers später die Ausführung des Programms verhindert. Deshalb bitte vor dem Auspacken des Archivs dieses Flag entfernen:

- Rechtsklick auf die Archivdatei --> "Eigenschaften" aus dem Kontextmenü wählen
- auf der Seite "Allgemein" im unteren Teil entweder das Häkchen bei "Zulassen" setzen oder den Button "Zulassen" klicken (hängt von der Windows-Version ab)
- die "Eigenschaften" per "Ok" schließen
- jetzt das Archiv auspacken, nicht Doppel-Klicken (Doppel-Klicken öffnet das Archiv zwar auch, aber man kann kein Programm ausführen)

Das Programm verlangt beim Start nach administrativen Rechten. Das muss sein, da die Fahrpläne und Züge in einem Ordner liegen, in dem man als "Normalbürger" keine Schreibrechte hat!

Gruß
Holger
If you can't fix it with a hammer, it might be an electrical problem ...
Wenn es auch das nicht ist, schreibe an service ät zusi-tools punkt org.

Antworten