Antwort auf: Variable in definierten Text ändern

Startseite Foren Deutsches LiveCode-Forum Variable in definierten Text ändern Antwort auf: Variable in definierten Text ändern

#19281
Klaus Major
Administrator

    Hallo Gil,

    sofern ich Dich richtig verstehe, klingt das nach eine idealen Job für die mächtige MERGE() Funktion!
    Dein Text sieht also so aus:
    <subscribe type=”dialog”>
    <listenFor/>
    <uri>eine_variable</uri>
    <line>
    <id>noch_eine_variable</id>
    <component/>
    </line>
    </subscribe>
    </presence>

    Da Du ja den “Quelltext” bereits in einem LC Feld hast, kannst Du Folgendes machen:
    Setze den Namen der Variablen in doppelte eckige Klammern im Text:
    <subscribe type=”dialog”>
    <listenFor/>
    <uri>[[eine_variable]]</uri>
    <line>
    <id>[[noch_eine_variable]]</id>
    <component/>
    </line>
    </subscribe>
    </presence>

    Dann lass diese Funktion darüber laufen, die macht Folgendes:
    Sie “parst” den Text und wertet alles, was in doppelten eckigen Klammern steht aus und guckt, ob es ein in LC verwertbarer “Ausdruck” ist und ersetzt das dann mit dem WERT dieses Ausdrucks.

    In Deinem fall kannst Du dann so vorgehen:

    ...
    put 42 into eine_variable
    put "Douglas Adams" into noch_eine_variable
    put merge(fld "mit den Variablen drin") into fld "ein anderes Feld"
    ...

    Die Variablen wurden ersetzt mit ihrem Wert!

    Weiteres Beispiel zu MERGE():

    ...
    answer merge("Heute ist [[the system date]]")
    ...

    Es wird damit immer das aktuelle Datum angezeigt.

    Ich hoffe, das hilft Dir weiter!

    Gruß

    Klaus