Seite 1 von 1
Verschachtelung von With:EndWith
Verfasst: 08.12.2013 12:49
von Chimorin
Heyho,
ist es irgendwie möglich With:EndWith zu verschachteln?
Es sollte in etwa so aussehen:
Code: Alles auswählen
EnableExplicit
Structure eins
a.i
b.i
c.i
EndStructure
Structure zwei
d.i
e.i
f.i
EndStructure
Define.eins var1
Define.zwei var2
With var1
\a = 12
With var2
\d = \a
\e = 5
EndWith
\b = 9
EndWith
Debug var1\a
Debug var1\b
Debug var2\d
Debug var2\e
End
Ich habe einige Werte aus, die ich von einer Liste in eine Andere schreiben möchte (Pro Aufruf aber nur einer). Jetzt habe ich da aber einen riesigen Block an Code stehen, den man in der Breite mit With auf unter die Hälfte reduzieren könnte...
Gruß,
Banane
Re: Verschachtelung von With:EndWith
Verfasst: 08.12.2013 13:01
von Andesdaf
http://purearea.net/pb/german/manual/re ... dwith.html
Laut der Hilfe sind keine Verschachtelungen von With/EndWith möglich.
Re: Verschachtelung von With:EndWith
Verfasst: 08.12.2013 13:57
von Chimorin
Vielleicht habe ich mich nicht klar ausgedrückt:
Es geht mir darum, dass man das vielleicht auf irgendeine Art und Weise doch machen kann (Über Macros, Prozeduren,...).
Dass man With nicht verschachteln kann ist klar. Wie soll der Compiler auch wissen, welches Variable jetzt zu welchem With-Argument gehört, wenn man z.B. 2 Variablen mit gleicher Struktur benutzt.
Re: Verschachtelung von With:EndWith
Verfasst: 08.12.2013 14:08
von NicknameFJ
Bananenfreak hat geschrieben:
Es geht mir darum, dass man das vielleicht auf irgendeine Art und Weise doch machen kann (Über Macros, Prozeduren,...).
Wenn Du Dir mal vor Augen führst wie Macros (oder auch Proceduren) funktionieren dann dürfte klar sein dass ein Macro an der betreffenden Stelle im Quellcode vom Compiler (
zur Compilerzeit) eingefügt/aufgelöst wird. Dann würde, wenn Du es über Macros machst ja wieder im Quellcode verschachtelt With [...] With stehen. Kann also nicht funktionieren.
Über Proceduren wohl dann ja sowieso nicht - oder? Eine Procedure ist ein Stück Programm das
zur Programmlaufzeit als Unterprogramm aufgerufen wird. Im Hauptprogramm wird dorthin verzeigt, das Unterprogramm ausgeführt und wieder ins Hauptprogramm zurück gesprungen, ähnlich wie Gosub nur dass z.B. eine Procedure lokale Variablen haben kann.
NicknameFJ
Re: Verschachtelung von With:EndWith
Verfasst: 08.12.2013 17:52
von Sicro
Hallo Bananenfreak,
mit Macros kannst du doch die Namen der Variablen kürzen:
Code: Alles auswählen
EnableExplicit
Structure eins
a.i
b.i
c.i
EndStructure
Structure zwei
d.i
e.i
f.i
EndStructure
Define.eins var1_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Define.zwei var2_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Macro var1_kurz
var1_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
EndMacro
Macro var2_kurz
var2_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
EndMacro
var1_kurz\a = 12
var2_kurz\d = var1_kurz\a
var2_kurz\e = 5
var1_kurz\b = 9
Debug var1_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\a
Debug var1_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\b
Debug var2_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\d
Debug var2_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\e
End
Re: Verschachtelung von With:EndWith
Verfasst: 08.12.2013 18:06
von Chimorin
@Sicro:
So etwas in die Richtung meinte ich. Vielen Dank
