Löschen aller "Dummy_rot-weiss2" per vbs Script aus der anl3 bzw. xml Datei

Achte bitte darauf, dass Du mit deinem Thema bzw. mit deiner Frage im richtigen Bereich bist.
Die Bereiche sind: Einstellungen im Forum, EEP aktuell ab EEP7 , Splines, Rollmaterialien, Immobilien, Landschaftselemente, Signale und Schaltung, Anlagenvorstellungen, Schnappschüsse Konstrukteure, EEP Treffen , Laberecke, Online - Handbuch EEP Vielen Dank für die Unterstützung das Forum übersichtlich zu halten.
Bilder/Fotos aus dem Internet sind nur als Link gestattet. Eigene Fotos, also Fotos aus dem realen Leben, sind erstens mit Eigenes Bild als Quellenangabe zu kennzeichnen und zweitens nur als Dateianhang im Beitrag zulässig. Bilder ohne Quellenangaben und Bilder dessen Quelle das Internet wie z. B. Google ist, werden gelöscht.
  • Hallo zusammen,

    Passt vielleicht nicht ganz in diesen Thread, aber ich versuche es mal.

    Ich versuche gerade Pitschi's EEP6-Anlage Bad Driburg-Ottbergen zum Laufen zu bringen.

    Da ich viele Landschaftselement nicht habe, muss ich tauschen.

    Für mein altes Programm Diesel's Modelltauscher ist die Anlage mit 16MB zu groß. (Runtime Error)

    Damit konnte ich auch alle Dummys auf eienen Schlag löschen.

    Den ModellTauscher aus dem EEP-Shop gibt es nicht mehr.

    Bleibt mir der Ernst Fasswalds Tool Modelle in Anlagen ersetzen V1.4a oder iceT's eep-Tweaker.

    Diese beiden Tools tauschen halt alle fehlenden Objekte in Dummys um.

    Jetzt habe ich ca. 12.000 Dummys, die ich gern löschen möchte.

    Die Idee, löschen aller "Dummy_rot-weiss2" per vbs Script aus der anl3 bzw. xml Datei.

    Das ganze XML steht aber in einer Zeile, zumindest sieht es im Ultra Edit oder Notepad++ so aus.

    Die EEP-Dokumentation hat mir dabei nicht geholfen.

    Kennt jemand eine Möglichkeit, per vbscript diese Löschung vorzunehmen.

    Das Script hier ( hab ich aus dem Internet leicht abgewandelt) hat dann die erste Zeile komplett gelöscht,

    Übrig blieb die Anlagen beschreibung

    'RemoveLines.vbs

    Criteria = Split(Trim("Dummy_rot-weiss2"))

    Bak = ".bak"

    Set fso = CreateObject("Scripting.FileSystemObject")

    If WScript.Arguments.Count < 1 Then

    WScript.Echo "Keine Quelldatei angegeben!"

    WScript.Quit 1

    End If

    FileOut = WScript.Arguments(0)

    If Not fso.FileExists(FileOut) Then

    WScript.Echo "Angegebene Quelldatei " & FileOut & " nicht gefunden!"

    WScript.Quit 2

    End If

    FileIn = FileOut & Bak

    If fso.FileExists(FileIn) Then fso.DeleteFile FileIn

    fso.MoveFile FileOut, FileIn

    XMLin = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(FileIn).ReadAll, vbCrLF)

    U = UBound(XMLin)

    i = 1

    Do Until i > U

    Remove = False

    For Each Crit In Criteria

    If InStr(XMLin(i), Crit) Then Remove = True: Exit For

    Next

    If Not Remove Then

    XMLout = XMLout & vbCrLF & XMLIn(i - 1)

    Else

    i = i + 2

    End If

    i = i + 1

    Loop

    If i = U + 1 Then XMLout = XMLout & vbCrLF & XMLIn(i - 1)

    fso.OpenTextFile(FileOut, 2, True).Write Mid(XMLout, 3)

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.

  • Passt vielleicht nicht ganz in diesen Thread

    Hallo :)

    warum postest Du dann dort? Ich habe Deinen Beitrag deshalb abgetrennt und in neues Thema verschoben. Bitte beim nächsten Mal selbst daran denken. Und noch eine Bitte: bitte Skripte u.ä. als Code einfügen. Damit wird das dann besser lesbar. Vielen Dank für Deine Mithilfe, das Forum übersichtlicher zu halten.

    Gruß Ingo

  • Genau.

    Es gibt keinen Grund, dafür das Rad neu zu erfinden.

    Du weisst, was Du suchen willst:

    Dummy_rot-weiss2

    Du weisst, wodurch Du es ersetzen willst:

    Voila:

    Nimm Notepad++

    Dass Du vorher eine Kopie der Anlagendatei erstellst erwähne ich nicht. Das weisst Du ja selbst. :ae_1:

    :aq_1:Gruss Jürg

    Es ist müssig, dauernd den Weltuntergang heraufzubeschwören. Man muss auch aktiv etwas dafür tun. :bn_1:

  • Suchen und Ersetzen ist hier aber nicht angebracht. Er will die Objekte löschen. So ersetzt er nur den Namen durch nichts. Das Objekt bleibt trotzdem in der Anlage, nur unter anderem Namen, der natürlich auch nicht gefunden wird.

    Manfred

    Hier geht es zu --> Kjus EEP.

    Meine freien Modelle, Tools und Tutorials gibt es hier.

    Der Autorenerlös meiner Modelle geht zu 100% an ECPAT Deutschland e.V., Arbeitsgemeinschaft zum Schutz der Kinder vor sexueller Ausbeutung.

    Mitglied des Kontinuums, Reisender durch Zeit und Raum, zur Zeit Gast auf dem dritten Planeten eines unbedeutenden Sonnensystems.

  • Ja, das "Löschen" ist mein Vorhaben.

    Hab mir gerade mal die Liste der Fehlmodelle angeschaut.

    Es sind alleine 15280 Flora-Elemente von UK2, Lerche Hasel, etc. verbaut.

    Da ich die Sets nicht habe, werden die alle durch die Dummys ersetzt.

    Für rund 10€ könntze ich die auch kaufen, möchte ich aber nicht, da schon mehr als genug Vegation verbaut ist.

    Wenn ich die Vegetaton entferne, Klimawandel im EEP :ak_1:, dann müsste die Datei sich besser händeln lassen und passt vieleicht sogar noch in Diesel's alten Modelltauscher.

    Dann könnte ich wieder die Zuggarnituren prima austauschen

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.

  • Die Erkennung, welche Modelle nicht im Bestand sind, findet ja erst beim Laden der Anlage statt und deswegen sind diese Angaben nicht in der Datei (.anl3) gespeichert. Es muss ein Vergleich der Liste "nicht gefundener Modelle" mit der anl3-Datei mittels XML-Editor erfolgen. Sehr zu empfehlen ist der Easy XML Editor, dort kann mann jedes Modell bei zusammengeklapptem XML-Baum komplett löschen. Mit einer Batch-Routine geht das Ruck Zuck und alle "nicht gefundenen Modelle" sind eliminiert.

    Gruß Little

    Bin nur noch lesendes Mitglied... (meistens:aa_1:)

  • Es handelt sich hier um eine EEP6.0-Anlage.

    Beim Laden kommt beim ersten Auffinden eines fehlenden Modells ein Dialog, diese zu tauschen. bei ca. 18.000 Fehlmodellen ein langwieriger Prozess.

    Daher der Austausch mit dem EF1-Tool, Modelle in EEP-Anlagen ersetzen V1.4, welches die Fehlmeodelle mit Dummys ersetzt.

    Erst ab EEP 7.0 wurde die Liste der Fehlmodelle beim Laden erzeugt.

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.

  • Kju (MA1) :

    Zitat

    Suchen und Ersetzen ist hier aber nicht angebracht. Er will die Objekte löschen. So ersetzt er nur den Namen durch nichts. Das Objekt bleibt trotzdem in der Anlage,

    Das verstehe ich nicht. Nach dem Neuladen der Anlage ist das Objekt doch nicht mehr da und wird so auch nicht als fehlend markiert?

    Wieso klappt das bei mir immer und soll hier nicht funktionieren?

    Uli

    Hardware: XMG Notebook P507; 16 GB RAM; NVIDIA Geforce GTX 1060

    Software: eep16, eep17

    NOS DEV 13, NOS DEV 16

    Eigene Modelle

  • durch suchen von "name" und ersetzen durch "" wird nur das Feld name geleert, nicht die restlichen Daten zu einem Objekt.

    Eep zeigt dann das objekt nicht mehr als fehlend an, aber der ganze schmodder steht noch in der xml- Datei.

  • Werde bei nächster Gelegenheit mal den Test mit dem Löschen des Namens machen.

    Hatte auch gedacht, das man am Block mit z.B. Notepad++ mehrere Zeilen(jede Zeile ist ein Objekt) markiert und dann entfernt. Funktioniert nicht, man kann immer nur eine einzige Zeile entfernen. Offenbar wird schon restriktiv geschaut, das die XML-Struktur nicht kaput geht.

    Kann mir vorstellen, das durch das Löschen, bzw. Tauschen gegen "" ggf. die anl3 -Datei danach kaputt ist.

    Muss mich schlau machen, wie XML funktioniert.

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.

  • man braucht nur die zeile ersetzen frei lassen

    ernst

    Spoiler anzeigen

    PC: AMD Ryzen™ 7 5700G 3,8 GHz (Turbo-Boost bis 4,6 GHz),16 GB DDR4-RAM Arbeitsspeicher
    Speicher: 1000 GB SSDN,Grafik: VIDIA® GeForce RTX™ 3060, Bildschirm: S24B300 1920x1080
    Edition Windows 11 Home, Version 23H2
    EEP Aktuell: 17.2 Expert(x64), Patch 1, Plugins: 1, 2,

  • Habe eine viel kleinere Anlagendatei mal mit Notepad++ und dem XML-Plugin bearbeitet.

    Wenn man nur die "Dummy**.gsb" gegen "" tauscht, sucht EEP6 dann nach einem leeren Element beim Start.

    Was aber funktioniert, man kann tatsächlich ganze Strukturen (es waren 17 Dummys untereinander) mit dem Notepad++ markieren und dann löschen.

    Anschließend konnte ich die kleine Anlage ohne Probleme und ohne Dummy starten.

    Bei der doch mit 16MB großen anl3.Datei versagt Notepad++ den Dienst. (Keine Rückmeldung)

    Da muss ich mich nach einem anderen XML-Editor umschauen.

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.

  • Hallo zusammen,

    ich habe eine Lösung gefunden.

    Mit dem XML-Tool "Easy XML Editor pro 1.0" (60Tage Testzeit) konnte ich alle Dummys problemlos finden, am Block markieren, und dann löschen.

    Die Anlage lässt sich einwandfrei laden, keine Nachfragen von Fehlmodellen und es sind nun keine Immo- sowie Landschafts-Dummys mehr zu sehen.:aa_1:

    Die Rollmaterial-Dummys möchte ich mit den diversen Zugbildungstools editieren bzw. ganz austauschen.

    Die fehlenden Immos (z.B. das BW) werde ich mit verbauten Modellen der Mythos-Ottbergen Anlage ergänzen.

    Somit habe ich, zumindest für mich, eine Lösung für das Löschen von massenhaft Dummys gefunden.

    Vielleicht gibt es doch nochmal ein Tool wie den Modelltauscher, mit dem man gezielt einzelne Objekte tauschen kann.

    1. PC: Intel i7-3770 / ASUSTEK P8H67-V, 16GB DDR3 Kingston / Geforce GTX970 / Win10 Home x64

    EEP: 2.43 / 3.0 / 5.0 / 6.1classic / 7.0 / 8.0 Exp. / EEPX Exp. / EEP12 Exp. / EEP13 Exp. / EEP15 Exp.