Kleines Programm zum XML einlesen und Werte ändern

  • Hallo zusammen,

    ich suche jemanden, der mir ein kleines Programm schreiben kann, welches XML-Dateien einließt, bestimmte vordefinierte Einträge grafisch darstellt, und diese Einträge dann per Dropdown-Menu (bin auch offen für andere Ideen) ändern kann.

    Beispiel:

    in der XML steht z.B. u.a.:

    Ich möchte nun, dass die "ButtonDef" ausgelesen werden, grafisch als Button dargestellt, und ich z.B. per Dropdown das "<OnClickEvent>Toogle1</OnClickEvent>" ändern kann in z.b. "<OnClickEvent>beispiel365</OnClickEvent>", auch wieder nach festen Vorgaben.
    D.h. alles was per Dropdown ausgewählt werden kann, würde fest vorgegeben sein. Würde ich z.B. "Toggle1" mit dem Label "Buttontext1" ändern wollen in "Beispiel365" mit Label "Button365" müsste einfach "Toggle1 und Buttontext1" durch "Beispiel365 und Button365" ersetzt werden.

    Hoffe ich hab das halbwegs verständlich ausgedrückt, sorry! Falls nicht, einfach fragen bitte ;)

    Bin absoluter Neuling in dem Gebiet, bin durch diesen Satz hier auf Autoit gestoßen, denn das Ganze sollte später eine Exe sein, die auf jedem Rechner läuft ohne irgendwas installieren zu müssen.

    Zitat von Wikipedia

    Außerdem enthält es einen Interpreter und einen Compiler, mit dem ausführbare Dateien (exe-Dateien) erstellt werden können; damit können AutoIt-Skripte auch auf Computern ausgeführt werden, auf denen AutoIt nicht installiert ist.


    Ich gebe gerne nen Kaffee und nen Stück Kuchen aus, oder sonst irgendeine Kleinigkeit, man wird sich da schon einig denke ich. Ansonsten halt bitte Preisvorstellungen.

    Freue mich auf Eure Antworten!

    LG

    Einmal editiert, zuletzt von d2n1r (14. März 2017 um 22:25)

  • Ja, die Buttongröße und Schriftart usw. wird an andere Stelle definiert und dann halt nur mit <TemplateName>button_large</TemplateName> eingebunden.

    Ich denke das sollte für mein vorhaben egal sein, oder? Mit "grafisch" meinte ich lediglich nur, dass ein normalsterblicher Benutzer halt grob sehen kann was er ändert, das KANN auch nur nen Hintergrundbild sein z.B.

    so zieht das z.B. aus:

    http://prntscr.com/ejuhet

    oder auch so:

    http://prntscr.com/ejuj04

    Hoffe das macht es etwas verständlicher

  • Moment, nur mal so zum Verständnis:
    - du willst also eine AutoIt-GUI in der XML definieren
    - diese soll später mit AutoIt ausgelesen werden und die GUI soll konstruiert werden
    - und die AutoIt-GUI soll diese ändern?

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • Beispiel, quick and dirty zusammengeschustert..., Beschreibung folgt:

    [Blockierte Grafik: http://image.prntscr.com/image/06e90f79918c41cba7e99987ffbe65a7.png]


    Ich versuche mich so einfach wie möglich auszudrücken, hoffe es wird dann klarer.

    Die oben eingefügten bräunlichen Bilder bzw. "Buttonleisten", werden aus XML-Files erstellt. Es gibt sozusagen ein "Style.xml", in dem z.b. definiert wird, wie breit ein Button ist, welche Hintergrundgrafik er hat, usw. - das ist aber für mein vorhanden hier mit Autoit nicht relevant.

    Ich möchte ein simples grafisches kleines Progrämmchen (wie oben z.b.), das:

    a) die 3 XML-Files einliest (damit es weiß, was auf welchen Button steht, und welche funktion für den button in der XML-File hintergelegt ist)
    b) So dropdown-boxen hat wie oben unter den Bildchen, in den Dropdown boxen wären von mir vorgefertigte Textteile, die dann einfach an Stelle X in der jeweiligen XML-File geändert und der File abgespeichert werden müsste.
    c) optional - RICHTIG GEIL wäre, wenn es optisch darstellen könnte WELCHE beschriftung (z.b. "Attack" Stick" etc.) der Button gerade hat, das wäre aber nur das Sahnehäubchen, ist kein muss, wäre aber extrem geil
    d ) optional - auch schön wäre, wenn es zu jedem file einen BUtton geben könnte, der wieder die (von mir vorgegebenen) Default-Werte in die XML-File schreibt.

    Hier ist mal die komplette XML-File für das erste Bild oben links in meinem Beispiel:

    In diesem File, fangen die Button z.b. ab Zeile 43 an. Zeile 43 bis Zeile 55 ist der erste Button aus meinem Beispielbild oben).

    Ich hätte es jetzt gerne so, dass ich in der Dropdown-Combobox mehrere Einträge definieren kann (intern), welche die Benutzer dann auswählen können. Der Default-Eintrag wäre zum Beispiel Zeile 53 und Zeile 54 (in der Dropdown-box würde man nur das "Attack" aus Zeile 53 lesen können, Zeile 54 ist für die User nicht relevant.
    Jetzt würde es noch andere Einträge in der Dropdown-Box geben (alle von mir vordefiniert, der User muss nur klicken). Beispiel: Es gäbe noch einen Eintrag, der heißt z.B. Springen, wählt der Benutzer den Eintrag für Button X aus, schreibt das Programm in Zeile 53 "Springen" rein, und in Zeile 54 "ToggleJump" (nur ein Beispiel). Nächster Eintrag: Der Benutzer wählt "Hinsetzen" in dem Dropdown-Menu aus, das Programm schreibt "Hinsetzen" in Zeile 53, und "ToggleSitting" in Zeile 54. usw. usf. - Und das halt für jeden "Button".


    Ich hoffe ich konnte es nun anhand des Beispieles etwas besser erklären. Für jegliche Fragen bin ich immer zu erreichen!

    4 Mal editiert, zuletzt von d2n1r (20. März 2017 um 19:42)

  • ok.
    Ich schaue mir das bis morgen an und maxh was ich kann. Bitte habe dafür 1-3 Tage Geduld.

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • großartig, Danke!

    PS: falls es irgendwie hilft (beim auslesen oder so), ich könnte allen Buttons Controll-IDs geben, sehe dann in der XML so aus (Zeile 2):

    XML
    <ButtonDef>
                <ControlId>1</ControlId>
                <Position>
                    <X>5</X>
                    <Y>24</Y>
                </Position>
                <TemplateName>button_large</TemplateName>
                <Label>Relics</Label>
                <OnClickEvent>relic</OnClickEvent>
            </ButtonDef>
  • Wie ich sehe in dem Screenshot, hast du schonmal dazu was designet. Bitte schicke mir mal dieses Skript.

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34