Xml editor

Anfängerfragen zum Programmieren mit PureBasic.
Terratec
Beiträge: 8
Registriert: 23.06.2011 11:17

Xml editor

Beitrag 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
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Re: Xml editor

Beitrag 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.
pb 4.51
Terratec
Beiträge: 8
Registriert: 23.06.2011 11:17

Re: Xml editor

Beitrag 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.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Xml editor

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Xml editor

Beitrag 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. ;)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Xml editor

Beitrag 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
a²+b²=mc²
Terratec
Beiträge: 8
Registriert: 23.06.2011 11:17

Re: Xml editor

Beitrag 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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Xml editor

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Terratec
Beiträge: 8
Registriert: 23.06.2011 11:17

Re: Xml editor

Beitrag 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.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Xml editor

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten