#define nachträglich verwenden?



  • Hallo,
    ist es möglich einen #define Befehl zu verwenden,
    wen das Programm schon compiliert wurde? Es soll darum gehen ein Textdokument einzulesen und bestimmte Sätze zu entfernen.
    Die replace()-Funktion kenne ich, möchte sie aber nicht verwenden,
    weil mir #define besser gefällt.

    0x0ERROR



  • Nein.
    Das #define wird vom Preprozessor beseitigt, also noch vor dem Compiler.



  • 0x0ERROR schrieb:

    Hallo,
    ist es möglich einen #define Befehl zu verwenden,
    wen das Programm schon compiliert wurde? Es soll darum gehen ein Textdokument einzulesen und bestimmte Sätze zu entfernen.
    Die replace()-Funktion kenne ich, möchte sie aber nicht verwenden,
    weil mir #define besser gefällt.

    0x0ERROR

    Hä, ich hab kein Wort verstanden?
    - replace? was replace? wohin gehört die Funktion?
    - wie schaut das Textdokument aus?
    - Sätze? Deutsche Sätze?

    Am besten zeigst du, wie deine Textdatei aufgebaut ist und sagst, was du darin entfernen willst?



  • Du hast nicht verstanden, was PP-Befehle sind.

    Der Präprozessor verändert nur den Quellcode. Er hat mit dem fertigen Programm nichts mehr zu tun. Ein Makro, das mit dem define -Befehl definiert wurde, ist nur dazu da, den Quelltext zu verändern.

    Dagegen ist replace genau die richtige Wahl. Wieso magst du Makros mehr? Im Gegenteil, das solltest du lieber lassen.
    Makros werden mit gutem Grund gemieden.



  • Ja es ist möglich einen #Define Befehl zu verwenden das Programm schon kompiliert wurde. Es ist auch möglich aufs Klo zu gehen wenn das Programm kompiliert wurde oder Mittag zu kochen oder jemanden anzurufen und vieles mehr.

    :xmas2:



  • out schrieb:

    Hä, ich hab kein Wort verstanden?
    - replace? was replace? wohin gehört die Funktion?
    - wie schaut das Textdokument aus?
    - Sätze? Deutsche Sätze?

    Ich meine den Befehl regex_replace() aus der C++-Standartbibliothek
    regex.

    0x0ERROR



  • 0x0ERROR schrieb:

    Ich meine den Befehl regex_replace() aus der C++-Standartbibliothek

    Gut gegoogelt 👍

    Also hier die Lösung:

    1. CPP-File generieren

    #define SATZ /* nix */
    

    2. Präprozessor aufrufen auf das CPP-File und die Datei (MSVC mit "/P" bzw. GCC mit "-E")
    3. Fertig ist das ersetzte File -- alles zur Compile-Time



  • 0x0ERROR schrieb:

    out schrieb:

    Hä, ich hab kein Wort verstanden?
    - replace? was replace? wohin gehört die Funktion?
    - wie schaut das Textdokument aus?
    - Sätze? Deutsche Sätze?

    Ich meine den Befehl regex_replace() aus der C++-Standartbibliothek
    regex.

    0x0ERROR

    Und den kann man anwenden, wenn das Programm schon kompiliert wurde?



  • Belli schrieb:

    Und den kann man anwenden, wenn das Programm schon kompiliert wurde?

    Ja, der liest nämlich einen String ein und ersetzt vorgegebene Textsequenzen. Und denn Text kann man vom nutzer oder aus einer Datei einlesen.

    0x0ERROR


Anmelden zum Antworten