Befehle aus externer Datei einbinden



  • Theoretisch möglich ist sowas schon.

    Du hast dabei folgende Möglichkeiten (Auszug)

    1. Schreibe einen Parser der alle Funktionen unterstützt die du brauchst.
    std::ifstream in("dateiname.endung");
    std::string tmp;
    if ((in >> tmp) == "cout")
    {
    
    }
    

    usw.

    Ist schon recht kompliziert.

    1. Du compilierst die datei (inklusiv Wrapper) beim laden und linkst sie dynamisch. Auch nicht wirklich leichter.

    2. Das was du willst sieht sehr nach dem Einbinden einer Skriptsprache aus. z.B. für LUA gibts da bereits fertige Interpreter für C/C++. Möglicherweise lässst sich auch was mit C-Syntax finden.
      _______________

    Du siehst: Es ist theoretisch möglich aber gar nicht so einfach.



  • Ich bin vielleicht kein Experte aber wie man ein einfaches Programm schreibt, kompiliert und ausführt, so weit bin ich schon .

    Dann weißt du ja dass du deinen Code kompilieren musst um dann dein Programm ausführen zu können!
    Also müsstest du den Code aus der Datei ... wenn es denn echter C++ code wäre und keine ausgedachte skript-lib diesen kompilieren...
    Und das zur Laufzeit zu machen wird schwer....



  • Besserwisser;) schrieb:

    Da du C++-Code (Quältext) erst kompilierst, ist das nicht möglich! Der Dateiinhalt müsste ja vor der Ausführung ebenfalls kompiliert werden! Du kannst dir aber eine Scriptsprache ausdenken

    hey danke das ist eine gute idee werd ich direkt mal in die tat umsetzen. 🙂 🙂 🙂



  • Kuldren schrieb:

    Ich bin vielleicht kein Experte aber wie man ein einfaches Programm schreibt, kompiliert und ausführt, so weit bin ich schon .

    Dann weißt du ja dass du deinen Code kompilieren musst um dann dein Programm ausführen zu können!
    Also müsstest du den Code aus der Datei ... wenn es denn echter C++ code wäre und keine ausgedachte skript-lib diesen kompilieren...
    Und das zur Laufzeit zu machen wird schwer....

    Ja sorry ich ich hab dich falsch verstanden



  • @Besserwisser;)
    Das mit dem Scripten verstehe ich soweit aber mit welchem Befehl lese ich die verschiedenen Zeilen?



  • Du kannst (zur Übung) auch versuchen eben LUA zu verwenden, wenn dir deine eigene Skriptsprache nicht ausreicht (was bei Aufgaben die über die Ausgabe des Datums oder eines Namens hinausgehen echt umfangreich werden kann!)

    aber mit welchem Befehl lese ich die verschiedenen Zeilen?

    EDIT: Lass das mit LUA und schau dir lieber ein C++ Tutorial an



  • Kuldren schrieb:

    Oder du verwendest/schreibst eine Lib die den Inhalt der Datei interpretieren kann und keinerlei Neukompilierung bedarf.

    Kannst du mir da irgendein Tutorial oder so was empfehlen?



  • Dirty, aber zweckmäßig:

    // bla, dein Code....
    #include "DeineTextdatei.txt"
    // weiterer Code.
    

    Sobald du die Datei inkludiert hast, wird der Code vom Präprozessor reinkopiert und mitkompiliert 😉





  • mikey schrieb:

    Dirty, aber zweckmäßig:

    // bla, dein Code....
    #include "DeineTextdatei.txt"
    // weiterer Code.
    

    Sobald du die Datei inkludiert hast, wird der Code vom Präprozessor reinkopiert und mitkompiliert 😉

    Das ist allerdings auch nicht schlecht. Muss ich in #include "blabla.txt" den Pfad zur Datei mit angeben?

    #include "C:/.../DeineTextdatei.txt"
    

    Kuldren schrieb:

    Tutorials:
    http://c-plusplus.net/cms/modules.php?op=modload&name=Downloads&file=index

    Das sagt mir jetzt so direkt auch nichts, könntest du das etwas definieren?



  • Ich versteh nicht, weswegen manche Leute so kompliziert denken.

    Window: Ja, du musst den vollen Pfad angeben, wenn sich die Datei nicht im selben Ordner wie dein Programm befindet.



  • Bin davon ausgegangen dass du während das Programm läuft die Datei verändern möchtest!
    So kannst du ja gleich eine cpp Datei verwenden, denn so kommst du um die Neukmpilierung nicht herum..



  • Kuldren schrieb:

    Bin davon ausgegangen dass du während das Programm läuft die Datei verändern möchtest!
    So kannst du ja gleich eine cpp Datei verwenden..

    Eigentlich war das ja auch so gedacht das die .exe auf die datei zugreift und dann die Befehle ausführt.



  • Aber?



  • Eigentlich war das ja auch so gedacht das die .exe auf die datei zugreift und dann die Befehle ausführt.

    Den Satz kann man jetzt mehrfach interpretieren 😃



  • Also ich versuche es mal in einem zusammenhängenden Text.
    Eigentlich wollte ich eine immer wiederkehrende Befehlsfolge (keine Schleife),
    in mein Programm einfügen.
    Damit ich nicht so viel tippen muss dachte ich es gibt vielleicht einen Befehl der Code aus einer extra dafür geschriebenen Datei ausliest und das ich den Code so immer einfach mit diesem Befehl einbinden kann.
    So habe ich mir das ursprünglich vorgestellt. 😕



  • Also ich versuche es mal in einem zusammenhängenden Text.
    Eigentlich wollte ich eine immer wiederkehrende Befehlsfolge (keine Schleife),
    in mein Programm einfügen.
    Damit ich nicht so viel tippen muss dachte ich es gibt vielleicht einen Befehl der Code aus einer extra dafür geschriebenen Datei ausliest und das ich den Code so immer einfach mit diesem Befehl einbinden kann.
    So habe ich mir das ursprünglich vorgestellt.

    Kennst du Header-dateien bzw einfach Funktionen?
    Also wenn du den geschriebenen Code nicht mehr verändern willst (zur Laufzeit)



  • Kennen ja. Ab er ich weiß nicht wirklich etwas mit denen anzufangen, wie man die schreibt und so meine ich. 😞



  • Ok...zuerst...beim nächsten mal bitte dein Problem am Anfang besser schildern...dann hätten wir uns das ganze Skript zeugs erspart.
    Sieh dir einfach in den Tutorials die hier verlinkt sind etwas zu header dateien an!
    http://c-plusplus.net/cms/modules.php?op=modload&name=Downloads&file=index

    Das sind einfach Dateien in denen genauso Code steht wie in deinem Main nur dass du diesen eben in dein Projekt einbinden kannst

    das sind übrigens diese hier

    #include "HEADERDATEI.h"
    


  • Ok, trotzdem nochmal danke.


Anmelden zum Antworten