Objektname/Variablenname in String umwandeln - tricky



  • Hi,

    ich arbeite gerade daran eine HTML-Tabelle mit Hilfe von Bezeichnern in C++ zu erstellen. Im Grunde ist es relativ einfach, aber seht selbst.
    Ich habe ein Marko das wie folgt definiert ist:

    #define LISTE enumElement1 = (langes Argument), enumElement2 = (langes Argument) ...
    
    enum
    {
        LISTE
    };
    

    Nun möchte ich die einzelnen Bezeichner ( enumElement1 usw. ) als Spaltenbezeichnungen in einer HTML-Tabelle ausgeben.
    Dazu habe ich die Macros bereits mit Hilfe zweier parametrisierter Makros zu einem String umgewandelt:

    #define xstr(s) str(s)
    #define str(s) #s
    
    xstr (LISTE)
    

    Sodass ich auf folgende Zeichenkette komme:

    "enumElement1 = (langes Argument), enumElement2 = (langes Argument) ..."
    

    Damit konnte ich das Problem vorerst lösen. Jedoch muss ich mit Visual C++ 6.0 arbeiten, welches maximal 2048 Zeichen in einer Zeile zulässt.

    Meine Frage besteht nun darin, ob es eine Möglichkeit gibt, einen automatischen Zeilenumbruch mit Hilfe des Präprozessors hinzubekommen, sodass ich folgenden code habe:

    "4000 Zeichen lange Zeichenkette"
    "die umgebrochen wurde"
    

    Damit hat der alte Compiler von VC++ 6.0 nämlich keine Probleme. Oder gibt es etwa eine einfachere Möglichkeit die Bezeichner aus dem Makro zu extrahieren?

    Ich bin für jeden hilfreichen Tipp dankbar 🙂

    P.S.: Ich kann weder den Compiler wechseln (in VS.NET, VS2005 und gcc geht es), noch kann ich die Alptraumhaften Macros aus dem vorgegebenen Projekt entfernen.

    Beste Grüße
    phiL


Anmelden zum Antworten