[Allegro] Flex: if %abc% command

Heinrich Allers allers at t-online.de
Do Mär 24 00:15:04 CET 2005


S. Koczian hadert mit dem Flexbefehl 'if %abc%:

> Vergleich:
> 
> #uWa enthält eine Liste erlaubter Kategorienummern: "#00 #20 #40
> #99n" 

> #uWb enthält eine einzelne Kategorienummer ...
> Ich möchte wissen, ob der Inhalt von #uWb in #uWa vorkommt und
> versuche das mit dem Vergleich 
> 
> variable #uWa
> if %#uWb% message Erlaubt
> if not %#uWb% message Verboten

> Kann man die Konstruktion mit % nicht mit Anwendervariablen
> benutzen? 

Nicht nur spontan, sondern auch nach ein wenig Nachdenken und Nachlesen 
in der Dolumentation würde ich sagen: Nein. 'abc' steht in 'if %abc%' 
also wirklich nur für eine Textzeichenfolge, so meine ich.

###

Ferner fällt ihr auf, daß bei

> var k1
> var (0,4)
> insert #uWb
> 
> ein Leerzeichen am Ende der Kategorienummer wegbleibt, ...

Ja, aber dieses Phänomen des Weglassens von Leerzeichen vorne oder 
hinten findet man ja vielerorts in Allegro, und an gewissen Stellen 
will man es ja auch durchaus so.

Der übliche Trick, das Leerzeichen am Ende der Kategoriebezeichnung zu 
erhalten, wäre hier:

var k1
var (0,4) "xyz"
insert #uWb
var #uWb(e"xyz")

denn an dieser Stelle hätte man in der iV präzise die 
Kategoriebezeichnung, gegebenenfalls mit dem Leerzeichen am Ende (bei 
fehlendem Kategoriefolgezeichen).

###

> Wie muss ich richtig vorgehen? Ich hoffe, ich muss nicht zwei
> Schleifen verschachteln: eine für die Kategorienummern des Satzes
> und eine für die einzelnen erlaubten Kategorien. 

Ja, ich glaube, Sie müssen zwei Schleifen machen, es sei denn, es gäbe 
noch einen Weg, mit 'deposit' sich eine Parameterdatei zu Diensten sein 
zu lassen.


Mit besten Grüßen:

Heinrich Allers

-- allers at t-online.de * http://www.allers.privat.t-online.de




Mehr Informationen über die Mailingliste Allegro