Denkanstoß: Scripteditor Tree View

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex2000.

    Denkanstoß: Scripteditor Tree View

    Hallo, ich schreibe gerade einen "Scritpteditor", wo der User dann über Buttons und anderen Klickibunti Kram Scriptteile hinzufügen. Dabei können auch mehrere Teile gemacht werden, die dann nacheinander aufgerufen werden usw.

    Das Problem ist zum einen, dass man wenn man eine Funktion löscht natürlich alles gelöscht werden soll was in dieser vorhanden ist und dass nur in solche Funktion Befehle geladen werden können sollen. Wie könnte ich nun überprüfen ob der ausgewählte Tree View Eintrag ein Funktionskopf, Funktionsende oder ein Teil in der Funktion ist? Der Funktionskopf ist nich besonders gekennzeichnet, also es steht dann da:

    VOM USER DEFINIERTER NAME
    Befehl
    Befehl
    Befehl
    END VOM USER DEFINIERTER NAME

    Hat sich jemand schonmal mit sowas beschäftigt und kann mir weiterhelfen? Ich will keinen kompletten Code(wäre so auch nicht möglich)

    lg

    Alex2000 schrieb:

    Du kannst dir selber die Befehle/Anweisungen definieren die du in deinem Programm haben willst und dem entsprechend weitere aktionen ausführen.
    Oder du schreibst dir komplett eigenen kompiler !
    Ich denke du hast da was falsch verstanden ich will bis jetzt nur realisieren, dass solche Befehle(btw. auch neue Funktionen) nicht so aussehen:

    Quellcode

    1. Main START
    2. MAIN END
    3. Befehl
    4. Befehl


    bzw. so:

    Quellcode

    1. Main START
    2. Function1 START
    3. Function1 END
    4. Main END

    Das heißt ich will verhindern dass funktionen verschachtelt werden oder Befehle außerhalb von Funktionen stehen. Allerdings fällt mir nicht ein wie ich sowas realisieren könnte
    Das heißt ich will verhindern dass funktionen verschachtelt werden oder Befehle außerhalb von Funktionen stehen.
    1. Die befehlen können nich ausserhalb die Classe stehen die du definierst
    2. Was verschachteln angeht, das ist dein freies auswahl ob du bestimmte Methoden oder Eigenschaften verschachteln willst, es hängt davon ab wie du deine Funktionen schreibst.

    Und das mir noch immer unklar was du hier andeuten willst.
    vorher:

    VB.NET-Quellcode

    1. Main START
    2. MAIN END
    3. Befehl
    4. Befehl


    nacher:

    VB.NET-Quellcode

    1. Main START
    2. MAIN END
    3. Befehl
    4. Befehl
    Es geht hier nicht um Visualstudio, es geht um einen Codeeditor für eine andere Sprache(dürfte unbekannt sein), die ganzen Eingaben des Users sollen per Tree View erledigt werden, dann hat der User da eben seinen Code der aus Nodes aufgebaut ist. Allerdings kann der User seine Befehle natürlich auch außerhalb von Funktionen hinschreiben, das soll er nicht, ich muss als Überprüfen ob sich das selektierte Node zwischen "START" und "END" befindet. So verständlicher?

    lg
    @Sturmvogel: ouuu man hast du nichts besseres zu tun... :D
    Überprüfen ob sich das selektierte Node zwischen "START" und "END" befindet
    Ja ok, du kannst eigentlich mit eine Schleife von "Start" bis "End" duchrchlaufen und prüfen ob die Befehle sich zwieschen "Start" und "End" befinden.
    Wenn ein Befehl vor "Start" oder nach "END" steht dann gebe eine Fehler Meldung aus. Das ist halt spielerei mit For Next schleifen und Variablen.

    Alex2000 schrieb:

    @Sturmvogel: ouuu man hast du nichts besseres zu tun... :D
    Nein, nja es geht nicht um einen 0815 vb.net Codecompiler dingi, wie man es zu haufen findet und ich werde es hier auch warscheinlich nicht vorstellen, es geht um Romhacking wenn dir das etwas sagt.

    Auf die Idee mit den Schleifen bin ich schon gekommen, ist klar dass ich irgendwie mit Schleifen alles durchgehen muss aber das Tree View kann mehrere Script Teile Enthalten, ala

    Quellcode

    1. Main START
    2. Main END
    3. blub START
    4. blub END
    5. blaab START
    6. blaab END


    Somit kann das ganze leider nicht mehr funktionieren, denn alles was vor START steht, wäre auch Main START/END usw.^^
    Man müsste irgendwie prüfen können ob sich das ganze zwischen END und START(in dieser Reihenfolge) befindet, dann wäre es außerhalb.

    lg
    ja ja ich weis was " Romhacking" ist ! :D

    (Beitrag Editiert)

    Hier sind keine grenzen gesetzt, du kannst bestimmte Eingaben einschränken, verbieten. Das ist alles nur spielerei mit Schleifen, Variablen und Vergleichsoperatoren !

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Alex2000“ ()

    Alex2000 schrieb:

    Funz wird das schon, es hängt viel von deine Kopf und Logik ab !
    Sage ich gleich das wird nicht so einfach sein !
    War mir klar, allerdings muss ichs mal ausprobieren um zu wissen ob ichs fertig bringe oder nicht. Wenn ichs nicht fertig bringe dann eben nicht. Vielleicht wenn ich mal bisschen mehr weiß :)

    lg
    Vielleicht wenn ich mal bisschen mehr weiß :)
    1. Du muß befehlen kennen oder selber definieren
    2. Gutes wissen mit Schleifen und vergleichsoperatoren

    Mehr ist nicht dabei, der rest liegt in deinem "Wissen" und "fächigkeiten" !

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Alex2000“ ()

    Alex2000 schrieb:

    1. Du muß befehlen kennen oder selber definieren
    2. Gutes wissen mit Schleifen und vergleichsoperatoren

    Mehr ist nicht dabei, der rest liegt in deinem "Wissen" und "fächigkeiten" !
    Wie gesagt war mir klar, hab das Problem mittlerweile gelöst, zumindest den ersten Teil, man kann keinen Script im Script definieren, der nächste Schritt ist eben Befehle nur innerhalb, aber das ist ja im Prinzip nichts anderes(die selbe Funktion umgekehrt eben), von daher, ich danke dir für die Hilfe :)

    lg