[Tustep-Liste] Makro - Anfuehrungszeichen

Karlheinz.Huelser at t-online.de Karlheinz.Huelser at t-online.de
Mo Sep 8 23:27:00 CEST 2003


Lieber Herr Reeg,
der von Ihnen eingeschlagene Weg scheint auch mir der naheliegende Weg zu sein. Will sagen: die Hilfsvariable wird sich nicht (oder jedenfalls nicht völlig: s.u.) vermeiden lassen.
Dieser Weg reicht allerdings nicht aus, falls VAR auch eine Sternvariable sein kann. Wenn diese nämlich keine Teilzeichenfolge hat und sozusagen 'quasi-leer' ist, ist sie doch nicht .EQ."", sondern erscheint als ihr Inhalt immer noch der Asteriskus. 
Aus diesem Befund ergibt sich der zweite Lösungsweg für Ihr Problem: Egal, was für eine Art Variable VAR ist, - mit der Makrofunktion SIZE frage man ab, wieviele Teilzeichenfolgen VAR enthält. Falls es null Teilzeichenfolgen sind (und es sich um eine 'normale' Variable handelt), ist diese leer. Und falls es mehr Teilzeichenfolgen sind, macht es nichts, wenn zu ihrem Inhalt Anführungszeichen gehören.
Viele Grüße
Karlheinz Hülser



"Gottfried Reeg" <reeg at zedat.fu-berlin.de> schrieb:
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
> 
> Liebe TUSTEPianer,
> 
> in einer Makroprozedur möchte ich abfragen, ob eine Variable
> leer ist. "Normalerweise" funktioniert folgende Anweisung
> 
> $$ IF ("<var>" .NE. "") THEN
> 
> Die Variable "var" kann jedoch mit Text belegt werden, der
> Anführungszeichen enthält. Daher funktioniert obige Abfrage
> nicht, denn <var> wird durch den Variableninhalt ersetzt;
> vgl. hierzu Handbuch S. 336
> 
> Wenn ich die dort im Handbuch erwähnte Lösung aufgreife,
> stellt sich die Frage, was gebe ich anstelle von '""' an?
> Folgende beiden Möglichkeiten führen zum
> Fehlerabbruch:
> 
> 1.
> $$MODE VARIABLE
> $$IF (var .NE.)  THEN
> $$MODE VARIABLE
> 
> 2.
> $$MODE VARIABLE
> $$IF (var .NE. '') THEN
> $$MODE VARIABLE
> 
> Folgende Lösung fiel mir ein: Eine Hilfsvariable "leer" wird
> definiert, so daß ich zwei Variable vergleichen kann.
> 
> $$ SET leer=""
> $$MODE VARIABLE
> $$ IF (var .NE. leer) THEN
> $$MODE VARIABLE
> 
> Meine Frage gibt es eine Schreibweise, wie ich den Umweg
> über die Hilfsvariable vermeiden kann?
> 
> MfG
> Gottfried Reeg
> 
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
> 


Mehr Informationen über die Mailingliste Tustep-Liste