Seite 1 von 1
Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 17:17
von Josh
Hallo Leute,
gibt es eine Möglichkeit, eine 'Sektion' meines Codes vom Compiler auszuschließen? Das ich das mit
CompilerIf 0
CompilerEndIf
machen könnte ist bekannt. Allerdings wäre es mir lieber, wenn ich das durch eigene Schlüsselwörter wie. z.B.
MySection
EndMySection
machen könnte. Dies hätte den Vorteil, dass es klarer ist und ich in meinem Präprozessor die 'Sektion' zum auswerten finden kann.
Leider ist es anscheinend mit einem Macro nicht möglich, MySection & co auf CompilerIf & co umzubenennen. Vielleicht hat einer eine andere Idee.
Danke
Josh
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 17:32
von STARGÅTE
Mach dir zwei Macros die das CompilerIf 0 erst "zusammen bauen":
Code: Alles auswählen
Macro Compi
Compiler
EndMacro
Macro lerIf
If 0
EndMacro
Macro MySection
Compi#lerIf
EndMacro
Das sieht man bei "solchen" Methoden sehr oft im Forum
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 17:51
von Josh
Gefällt mir gut, Danke.
Habe ich echt noch nicht gesehen hier im Forum, oder wahrscheinlich nicht darauf geachtet.
Gibt es für
EndMySection auch eine Lösung oder bin ich einfach zu blöd dafür?
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 21:46
von STARGÅTE
Ich habe bei meinen Erklärungen nicht ganz den Kern getroffen.
Hier noch mal die Richtigstellung:
Wenn du ein Macro hast, welches MySection heißt und den Code "CompilerIf 0", dann wird ab dieser Stelle ja kein Code mehr in den Paser gelassen. Die Schlussfolgerung ist dann natürlich, dass auch keine Namen für Macros geparst werden, somit wird dein EndMySection garnicht geparst, kann somit auch kein CompilerEndIf erzeugen.
Deswegen gibt der Compiler immer den Hinweis, dass ein CompilerEndIf fehlt.
Es ist also in dieser Weise nicht möglich.
Allgemein gilt (so schön die Kompilerschlüsselwörter auch sind), man sollte Macro, CompilerIf und With nicht vermischen, sondern immer nur folgerichtig aufrufen.
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 21:58
von Josh
Ja, ist mir langsam auch schon klar geworden, dass es nicht gehen kann. Aber die Hoffnung stirbt zuletzt ^^
Ich habe mir auch schon überlegt, MySection / EndMySection durch ein Makro auf Procedure() / EndProcedure umzubenennen. Das sollte ja eigentlich gehen und würde auch nicht stören, da die Prozedur nie aufgerufen wird und in der Exe dann auch nicht aufscheint. Leider kann ich in eine Prozedur keinen freien Code schreiben, der nicht Pb konform ist.
Vielleicht irgendwelche anderen Ideen?
P.S.: Ein extra Danke an Stargate für seinen endlosen Bemühungen
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 22:31
von Derren
Wie wär's mit einem Pre-Compiler?
Andere Ideen hab ich leider auch nicht.
Re: Codesektion vom Compiler ausschließen
Verfasst: 29.05.2013 22:45
von Josh
Derren hat geschrieben:Wie wär's mit einem Pre-Compiler?
Andere Ideen hab ich leider auch nicht.
Ich verwende einen Präprozessor, erstelle mir damit aber für das ganze Projekt nur eine pbi-Datei die am Anfang im Projekt eingebunden ist. Der Originalcode bleibt unverändert.
Änderungen am Originalcode funktionieren bei der Startdatei, bei weiteren eingebundenen Pb-Files gibt es nur Probleme.