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
Codesektion vom Compiler ausschließen
Re: Codesektion vom Compiler ausschließen
Mach dir zwei Macros die das CompilerIf 0 erst "zusammen bauen":
Das sieht man bei "solchen" Methoden sehr oft im Forum
Code: Alles auswählen
Macro Compi
Compiler
EndMacro
Macro lerIf
If 0
EndMacro
Macro MySection
Compi#lerIf
EndMacro
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Codesektion vom Compiler ausschließen
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?
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
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.
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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Codesektion vom Compiler ausschließen
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
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
Wie wär's mit einem Pre-Compiler?
Andere Ideen hab ich leider auch nicht.
Andere Ideen hab ich leider auch nicht.
Signatur und so
Re: Codesektion vom Compiler ausschließen
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.Derren hat geschrieben:Wie wär's mit einem Pre-Compiler?
Andere Ideen hab ich leider auch nicht.
Änderungen am Originalcode funktionieren bei der Startdatei, bei weiteren eingebundenen Pb-Files gibt es nur Probleme.