Ich würde gerne in Microsoft Visuals C++ ein Makro schreiben welche mir ein #if xxx sucht bis zum dazugehörigen #else und #end geht und den Code dazwischen löscht. Für mehrere Dateien. Wo gibt es ein Tut oder wer hat eine Idee+
Heisse Kiste, wenn im #if ... #endif Abschnitt noch andere ähnliche Klammern stehen. Leichter wäre es, wenn das #endif spezifischer ist wie z-.b. nei #endif /* MAKRONAME */
Einen C-Präprozessor nehmen. Der macht genau das, wenn xxx nicht definiert ist.
@Rolf: > Einen C-Präprozessor nehmen. Der macht genau das, wenn xxx nicht > definiert ist. Der macht aber leider noch einiges mehr, z.B. C-Makros expandieren, Headerfiles includen usw. Der OP möchte mit seinem Vorhaben vermutlich den Quelltext verkleinern, nicht aufblasen ;-) @VCbasic: Um so etwas selbst zu programmieren, wäre es von Vorteil, wenn der Editor wenigstens ein paar Grundfunktionen, wie das Springen von einem #if zum zugehörigen #else und #endif zur Verfügung stellen würde, aus denen man etwas zusammenbauen kann. Viele Stand-Alone-Editoren können das schon lange. <schleichwerbung_fuer_vim> Mit Vim, dem besten aller Editoren ;-), geht das ohne großen Aufwand:
1 | /^\s*#\s*if\s\+xxx\>^Md2]# |
Das Komplizierteste daran ist die Suche nach dem "#if xxx", wenn man Leerzeichen und Tabulatoren an allen erlaubten Stellen berücksichtigt. Der eigentliche Löschbefehl ist einfach d2]#, er löscht alles von der aktuellen Zeile (der mit dem #if) bis zum zugehörigen #endif. Das Ganze kann man noch in ein Register packen und wiederholt ausführen, bis die ganze Datei von den "#if xxx"-Konstrukten gesäubert ist. Auch eine Iteration über mehrere Dateien ist nicht schwierig. </schleichwerbung_fuer_vim> Aber zurück zu deiner Fragestellung: Ich kenne das aktuelle Visual Studio nicht. In der letzten Version, mit der ich gearbeitet habe (VC6) war der Editor noch ein besseres Notepad und damit nicht für komplexere Such- und Änderungsaufgaben zu gebrauchen. D.h. du müsstest das Matchen von verschachtelten #ifs selbst programmieren. Aber vielleicht kann das aktuelle Visual Studio inzwischen mehr. Wie man überhaupt Makros und ähnliches für Visual Studio schreibt, steht hier: http://msdn2.microsoft.com/en-us/library/xc52cke4(VS.80).aspx Kannst ja, wenn das Makro läuft, dieses hier posten. Mich würde interessieren, wie so etwas aussieht, und andere können etwas dabei lernen :-)
Habe gerade auf freshmeat gesehen, was vielleicht helfen kann, die Sourcen aufzuräumen: "Son of Unifdef" http://www.sunifdef.strudl.org/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.