Wow. Danke fur die ausführliche Untersuchung.
Gern geschehen. Übrigens willkommen in der
DP
Ich möchte, dass sich das nur matcht, wenn die unter #11 beschriebenen Kriterien zutreffen.
Also nach {4: ein Umbruch, danach Zeilen mit Egal plus Umbruch und danach eine letzte Zeile mit einem -} am Anfang.
Dann solltest Du noch zusätzlich je einen Zeilenumbruch einfügen '
/n'.
re.RegEx := '(\{4\:/n.*?/n-\})';
So ganz habe ich aber in der Tat den Zusammenhang mit dem Stack noch nicht ergründen können.
Im Wesentlichen wird zwischen HEAP und STACK unterschieden. Auf Daten die auf den Stack gelegt werden kann man relativ schnell zugreifen, dafür ist die Stackgröße beschränkt. Auf Daten im Heap kann langsamer zugegriffen werden, dafür ist im Heap viel mehr Platz.
Parameter von Prozeduren und Funktionen werden auf dem Stack gespeichertund nach dem Ende der Funktion wieder freigegeben.
Bei einer Rekursion ruft sich eine Funktion selbst auf. Wenn eine Funktion sich z.B. 100 mal aufruft, dann wird auch 100 mal Stack für Parameter benötigt.
Ich hoffe das hilft Dir weiter.