Select Case extern "erweitern"

  • VB.NET

Es gibt 33 Antworten in diesem Thema. Der letzte Beitrag () ist von ChOoSeMyNaMe.

    @masterm Wenn Du mit PlugIn arbeiten willst, und das ist in diesem Zusammenhang ziemlich mächtig, würde ich Dir einfach empfehlen, eine WinForms-Anwendung zu nehmen, da kannst Du ordentlichen objektorientierten Code schreiben. Die Pflege von solch ist auch in Zukunft wesentlich angenehmer.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich finde, wenn du nur TextDateien einlesen und "ausführen" willst, dann ist eine Konsolenanwendung ausreichend.
    Usereingaben gibts da ja keine - allenfalls editiert der User die Datei.

    Dennoch halte ich die Idee "Scriptsprache selbst ausdenken" für Unfug.
    Ich selbst wäre zB ausserstande, eine Scriptsprachen-Syntax überhaupt zu konzipieren:
    Wird es Datentypen geben?
    Wird man Listen deklarieren können?
    Methoden?
    Befehle?
    Verzweigungen, Schleifen?
    Operatoren?
    Wie willst du das lösen, dass Befehle verschieden viele Argumente erwarten (müssen), und auch noch in verschiedenen Datentypen?
    Was ist mit Fehler-Handling?

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

    @ErfinderDesRades Deien Aufzählung impliziert für mich eine WinForm-Anwendung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades So komplex soll sie gar nicht werden. Die Sprache soll auf dem Niveau von .bat-Dateien bleiben (plusminus). Der Aufbau ist folgender:
    • Deklarierung der Skriptdatei
    • Anweisung
      • Klasse
      • Methode
      • Argument(e)

    Quellcode

    1. |SCRIPTI SCRIPT FILE VERSION 0.1.0.0
    2. show:Dies ist ein Test
    3. show:Dieses Skript kopiert eine Datei
    4. pause:
    5. file.copy:C:\test.txt;C:\test\
    6. 'Kopiert C:\test.txt in den Ordner C:\test
    7. pause:

    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    ok, dassis wirklich primitiv: Als Datentyp scheint ausschließlich String vorgesehen, Methoden können mehrere Argumente haben, keinen Rückgabewert.
    Schleifen, Variablen, Arrays nicht vorgesehen.

    Was aber bedeutet der '.' zwischen file.show:?

    Was meinst du mit "Klasse"? ich sehe im Sample nichts, was mit Klassen zu tun hätte.

    vlt. sollteste einfach Batches verwenden - die haben nämlich eine Art Plugin-System: Batch-Befehle starten kleine Hilfsprogramme, die ihre Argumente via Commandozeile empfangen.
    Also ehe du nu das Rad neu erfindest.... ;)

    ErfinderDesRades schrieb:

    Was meinst du mit "Klasse"? ich sehe im Sample nichts, was mit Klassen zu tun hätte.


    In VB gibt es Klassen. So kannst du dir das vorstellen. Es gibt file.move, file.copy und noch ein paar mehr. Statt Klasse könnte ich es auch Kategorie nennen, aber ersteres schien mir passender.
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21

    ErfinderDesRades schrieb:

    ich finde, wenn du nur TextDateien einlesen und "ausführen" willst, dann ist eine Konsolenanwendung ausreichend.
    +1

    Das synchrone lineare Abarbeiten von Befehlsketten ohne User-Interaktion mit gelegentlicher Ausgabe von Texten ist für mich sogar eine typische Konsolanwendung.
    Ich sehe nicht einen Vorteil den eine Forms-Anwendung hier bieten könnte.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Vielleicht sind die Klassen das, was er über ein Plugin nachladen können möchte.
    So dass er eine "Klasse" File hat, in der alle File-Methoden enthalten sind und in Klasse Netzwerk alle Netzwerk-Methoden usw.
    Die Leute, die keine File-Klasse haben, bekommen diese Methoden nicht.

    So ganz erschließt sich mir der Nutzen des Ganzen noch nicht, aber der TE braucht wohl eine Beschäftigung. ;)
    Als Übungsaufgabe ist das ja gar nicht schlecht.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Es dient einfach nur der Übersicht. Und im Quelltext ist es nach den gleich benannten Klassen sortiert.
    @petaod Du hast es erkannt.

    Ich denke, da ich VS sowieso neu aufsetzten muss, werde ich neu anfangen und es dann diesmal mit Forms machen.
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    Also ich hab das jetztso verstanden, dass du wie petaod erklärt hat, "Klassen" in Form von DLLs erstellen willst, in denen dann die Befehle einzeln deklariert sind. Die DLLs willst du dann ins Programm laden, welches dann die Befehle praktisch übersetzt. Wenndas so stimmt, wie hast du dann vor die DLLs schreiben? Du könntest theoretisch ein zweites Programm zum erstellen der DLLs schreiben... LG