Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Makro Parameter ersetzen wenn %-Wert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Makro Parameter ersetzen wenn %-Wert

    ich habe ein Makro, dass nur dann auf den Bus schreibt wenn eine Variable einen bestimmten Wert hat (ich kann damit simulieren dass der eibPC ausfällt...):

    Code:
    :begin xwrite(GA, Value)
    :return {
    if SRV_Active == ON then write(GA^, Value^) endif;
    }
    :end
    und wenn ich das Makto verwende, z.B.:
    Code:
    xwrite("EGW_JALB1UP_Position-4/6/30", 65%)
    dann erhalte ich einen Fehler:
    ...Makro genieriert ungültigen Code > { if SRV_Active == ON then write("EGW_JALB1UP_Position-4/6/30", 65%%) endif; ...

    es wird also ein weiteres % an den Parameter angefügt. Warum? Was muss ich anders machen?

    #2
    Du brauchst die ^ gar nicht in diesem Fall. Die sind nur dafür da, um das Argument als Text mit anderen Textkonstanten zu verknüpfen.

    Kommentar


      #3
      Code:
      :begin xwrite(GA, Value)
      :return {
      if SRV_Active == ON then write(GA, Value) endif;
      }
      :end​
      führt genauso zu dem Fehler:
      …Makro genieriert ungültigen Code > { if SRV_Active == ON then write("EGW_JALB1UP_Position-4/6/30", 65%%) endif;}…

      Kommentar


        #4
        Dann hilft wohl nur, den Prozentwert zunächst einer (neuen) Variablen zuzuweisen und diese an das Makro weiterzureichen.

        Kommentar


          #5
          Wo kommt denn dieses % denn her? Ist für mich ein Bug. Oder kann man mir das Design hierbei erklären?

          Kommentar


            #6
            Müssen wir prüfen, wo das zweite % genau herkommt.
            Generell dürfen in Makroargumenten keine Sonderzeichen, Leerzeichen usw. enthalten sein.

            In diesem Fall könnte 65% vorher als u08 konvertiert werden, ist aber offenbar nicht der Fall.

            Kommentar


              #7
              gibt’s hierzu Neuigkeiten? Für mich ist „%“ ein Datentyp-determinator und sollte auch an Makroparameter übergeben werden können?

              Kommentar

              Lädt...
              X