Seite 1 von 2

Xml editor

Verfasst: 23.06.2011 11:52
von Terratec
Hallo zusammen

Bin zur zeit an ein xml editor am arbeiten und weiss leider nicht weiter.Und zwar wollte ich wissen wie ich zahlen oder ein text in ein vorhanden text einfügen kann.Falls jemand tipps oder hilfestellung stellen kann,wäre ich dankbar.Das habe ich bis jetzt...

Code: Alles auswählen

; Zeigt mögliche Flags des StringGadgets in Aktion...
  If OpenWindow(0, 0, 0, 322, 700, "Freelancer Ship Scripter", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    StringGadget(1, 8,  10, 306, 20, "Stats:", #PB_String_ReadOnly)
    StringGadget(2, 8,  40, 306, 20, "")
    StringGadget(3, 8,  70, 306, 20, "Guns/Torpedo/Turrets:", #PB_String_ReadOnly)
    StringGadget(4, 8,  100, 306, 20, "0/0/0")
    StringGadget(5, 8,  130, 306, 20, "Armor:", #PB_String_ReadOnly)
    StringGadget(6, 8,  160, 306, 20, "")
    StringGadget(7, 8,  190, 306, 20, "Cargo Holds:", #PB_String_ReadOnly)
    StringGadget(8, 8,  220, 306, 20, "")
    StringGadget(9, 8,  250, 306, 20, "Max Batteries/NanoBots:", #PB_String_ReadOnly)
    StringGadget(10, 8,  280, 306, 20, "0/0")
    StringGadget(11, 8,  310, 306, 20, "Optimal Weapon Class:", #PB_String_ReadOnly)
    StringGadget(12, 8,  340, 306, 20, "")
    StringGadget(13, 8,  370, 306, 20, "Max. Weapon Class:", #PB_String_ReadOnly)
    StringGadget(14, 8,  400, 306, 20, "")
    StringGadget(15, 8,  430, 306, 20, "Additional Equipment:", #PB_String_ReadOnly)
    StringGadget(16, 8,  460, 306, 20, "")
    StringGadget(17, 8,  490, 306, 20, "Ship Name:", #PB_String_ReadOnly)
    StringGadget(18, 8,  520, 306, 20, "")
    StringGadget(19, 8,  550, 306, 20, "Infocard descript:", #PB_String_ReadOnly)
    StringGadget(20, 8,  580, 306, 100, "")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
und die werte müssen in die rot markierten felder rein und manchmal zweimal an verschiedene stellen.

[Ship]
ids_name = 0 ;GENERATESTRRES("Ship Name")
ids_info = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TEXT/><PARA/><TRA data="1" mask="1" def="-2"/><JUST loc="center"/><TEXT>Stats</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><JUST loc="left"/><TEXT/><PARA/><TEXT>Guns/Torpedo/Turrets: 0/0/0</TEXT><PARA/><TEXT>Armor: 0</TEXT><PARA/><TEXT>Cargo Holds: 0</TEXT><PARA/><TEXT>Max Batteries/NanoBots: 0/0</TEXT><PARA/><TEXT>Optimal Weapon Class: 0</TEXT><PARA/><TEXT>Max. Weapon Class: 0</TEXT><PARA/><TEXT>Additional Equipment: CD/T</TEXT><PARA/><PARA/><POP/></RDL></xml>")
ids_info1 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TRA data="1" mask="1" def="-2"/><JUST loc="center"/><TEXT>Ship Name</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><JUST loc="left"/><TEXT></TEXT><PARA/><TEXT>Infocard descript</TEXT><PARA/><POP/></RDL></xml>")
ids_info2 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TRA data="1" mask="1" def="-2"/><TEXT>Stats</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><TEXT/><PARA/><TEXT>Gun/Turret Mounts:</TEXT><PARA/><TEXT>Armor:</TEXT><PARA/><TEXT>Cargo Space:</TEXT><PARA/><TEXT>Max Batteries/NanoBots:</TEXT><PARA/><TEXT>Optimal Weapon Class:</TEXT><PARA/><TEXT>Max. Weapon Class:</TEXT><PARA/><TEXT>Additional Equipment: </TEXT><PARA/><POP/></RDL></xml>")
ids_info3 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TEXT/><PARA/><TEXT/><PARA/><TEXT>Guns/Torpedo/Turrets: 0/0/0</TEXT><PARA/><TEXT>Armor: 0</TEXT><PARA/><TEXT>Cargo Holds: 0</TEXT><PARA/><TEXT>Max Batteries/NanoBots: 0/0</TEXT><PARA/><TEXT>Optimal Weapon Class: 0</TEXT><PARA/><TEXT>Max. Weapon Class: 0</TEXT><PARA/><TEXT>Additional Equipment: CD/T/TEXT><PARA/><POP/></RDL></xml>")

__________________________________________________
Code-Tags hinzugefügt
23.06.2011
RSBasic

Re: Xml editor

Verfasst: 23.06.2011 12:20
von gnasen
Eine Quick-and-Dirty Lösung wäre, falls es sich nur um diesen spezialfall handelt, deine rotmarkierten Schlüsselwörter mit ReplaceString() zu ersetzen.

Re: Xml editor

Verfasst: 23.06.2011 16:36
von Terratec
Hört sich gut an nur ist das garnicht in meiner liste :cry:

http://www.purebasic.com/german/documen ... index.html

Wie wird das eingesetzt?Muss dann der xml ausschnitt im programm drin sein?

Habe mal gesucht und nicht wirklich was ich in mein fall gebrauchen kann.

Re: Xml editor

Verfasst: 23.06.2011 16:59
von STARGÅTE
Weil "deine" Liste für Gadgets ist!

Wenn du eine Zeichenkette verändern willst, was aus deinen Ausführungen hervor ging, musst du dir die String-Befehle ansehen.

Wenn du direkt ein XML-Bau verändern willst, gibt es dafür die XML-Befehle

Die Schnittstelle zwischen deine Benutzeroberfläche und der eigentlichen Ersetzung musst du jedoch selber Programmieren.
Das heißt auf die Eingabe in ein StringGadget reagieren und die entsprechende Stelle im XML-Baum ändern.

Re: Xml editor

Verfasst: 23.06.2011 17:01
von Nino
Terratec hat geschrieben:Hört sich gut an nur ist das garnicht in meiner liste :cry:
Dann stimmt mit "deiner" Liste was nicht. in "meiner" Liste ist ReplaceString() drin. ;)

Re: Xml editor

Verfasst: 23.06.2011 20:12
von Kiffi

Code: Alles auswählen

StringGadget(1, 8,  10, 306, 20, "Stats:", #PB_String_ReadOnly)
dafür kannst Du besser TextGadgets verwenden.

Grüße ... Kiffi

Re: Xml editor

Verfasst: 24.06.2011 18:14
von Terratec
Danke für den tipp:Das kann ich ja alles noch änder und verbessern.Bin noch mit replace am kämpfen.Gibts da ein tut oder so was,weil bei google finde ich nichts brauchbares und ich muss einmal sowas in aktion gesehen haben um es zu verstehen.
Beispiel:

Debug ReplaceString("This is Art", " is", " was") ; wird "This was Art" anzeigen
Debug ReplaceString("Hello again, hello again", "HELLO", "oh no...", #PB_String_NoCase, 10) ; wird "Hello again, oh no... again" anzeigen

test$ = "Bundy, Barbie, Buddy"
ReplaceString(test$, "B", "Z", #PB_String_InPlace, 1) ; alle B werden in Z geändert (direkt im Speicher, es gibt hier keinen gültigen Rückgabewert)
Debug test$ ; Ausgabe des geänderten Strings

weil das sagt mir jetzt nicht viel,weil ich ja xbeliebige zahlen eingebe und nicht alle b werden in z geändert oder so.Also respekt für die,die das alles verstehen oder gelernt haben lol

Re: Xml editor

Verfasst: 24.06.2011 19:24
von STARGÅTE
Ich frage jetzt einfach noch mal direkt:

Was willst du eigentlich machen?
Bis jetzt hast du ja nicht viel erzählt, nur das was du nicht machen willst/kannst...

Ich verstehe das so, das du eine Datei mit XML-Syntax einlesen willst, dann deine eingegebenen Werte einfügen willst, und das ganze wieder speichern willst, richtig ?

Dann nutze doch bitte die von mir gepostete Seite für XML.

Dann kannst du LoadXML nutzen zum einladen.
XMLNodeFromPath nutzt du um an die richtige Stelle zu springen.
Dann kannst du mit SetXMLNodeText() den Text innerhalb des Knoten ändern, den du in deiner Oberfläche eingegeben hast.
und mit SaveXML speicherst du alles wieder ab.

Ich hoffe du verstehst das ich bzw. wir dir hier nicht die ganze Arbeit abnehmen können.

Re: Xml editor

Verfasst: 24.06.2011 21:05
von Terratec
Das ist mir klar,das ihr nicht die ganze arbeit machen sollt und das habe ich auch nicht gesagt und möchte das auch nicht.Um die xml datei zu bearbeiten kann ich auch ein xml editor mir runterladen was ich auch schon habe.Aber ich möchte ein shipeditor spezial für das spiel haben,wo ich die werte des schiffes eingeben kann.So soll das ausehen. http://www.freelancer-galaxy-at-war.de/ ... hoto_id=96 Man gibt die werte ein und wenn es fertig ist erscheint das fertige xml,was man sich dann rauskopieren kann und einfach in die spiel datein reinkopiert.Aber ich kann mir nicht aus dem internet was raussuchen und einfach in mein code einfügen was kein hand und fuss hat und hoffen das es klappt.Das würde mich auch nicht voran bringen,weil ich trotzdem nicht verstanden habe wie es funktioniert.Ich möchte die zusammenhänge verstehen und möchte wissen wo ihr das wissen herhabt.

Re: Xml editor

Verfasst: 24.06.2011 21:31
von STARGÅTE
die xml datei zu bearbeiten kann ich auch ein xml editor mir runterladen was ich auch schon habe.Aber ich möchte ein shipeditor spezial für das spiel haben,wo ich die werte des schiffes eingeben kann.
Sag mal liest du dir eigentlich meine ganze Antwort durch?

Ich habe dir doch eindeutig geschrieben, mit welchen Befehlen du über PB deine XML bearbeiten kannst.
Und wenn dir die Grundlagen zum Programmieren an sich fehlen, dann solltest du dir die erst mal aneignen.
Ich möchte die zusammenhänge verstehen und möchte wissen wo ihr das wissen herhabt.
Die Pure-Basic Hilfe zusammen mit den Code-Beispielen die mit geliefert werden reichen zum Verstehen völlig aus.
Das du mehrere Kapitel (also XML, Window, Gadget, usw.) mit einander verbinden musst, ist wohl verständlich wenn es darum geht ein Programm zu schreiben.