WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Designer Forum (http://www.wcm.at/forum/forumdisplay.php?f=61)
-   -   Strings in XML / indirekte Adressierung (http://www.wcm.at/forum/showthread.php?t=178490)

derBruchpilot 16.11.2005 21:25

Strings in XML / indirekte Adressierung
 
Wie in
http://www.wcm.at/forum/showthread.p...211post1720211
beschrieben, habe ich mich mal am dsd_xml_tcas von Doug Dawson versucht.
Das Problem (für mich;) ) ist, dass die einzelnen Variablen für die AI-Flieger in der Form "L:xml_tcas_gs_XX" aufgebaut sind, wobei XX für eine Nummer von 00 bis 95 steht.

Wenn man nun die einzelnen Flieger darstellen will, muss man für alle 96 möglichen Nummern eine Routine schreiben. Das bläht den Quellcode auf und ist einfach nur mühsam.

Meine Idee war nun, mittels loop-next alle 96 Fälle durchlaufen zu lassen. Für eine Darstellung in Listenform hätte ich mir das so gedacht:
PHP-Code:

    <Element>
        <
Position X="0" Y="0"/>
        <
FormattedText X="406" Y="322" Font="Quartz" FontSize="24" LineSpacing="28" Adjust="Left" Color="Yellow" 

Bright="Yes" Tabs="3,64,58,98,190,290">
        <
ScrollY>(L:scroll,number)</ScrollY>
        <
BlinkCode>1</BlinkCode>
        <
Font FontSize="22"/>
            <
String>
                %((
L:TargetListItemsNumber,enums2 0 !=)
                %{if}
                %(
0 sp1)
                %{
loop}
                %(
l1 (&gt;L:TargetListCurrentLine,enum))
                %((
L:TargetListCurrentLine,string))%!02d!t
%('L:xml_tcas_gs_0' (L:TargetListCurrentLine,stringscat )%!s!t
                                
%(('L:xml_tcas_gs_0' (L:TargetListCurrentLine,stringscat ,knots))%!d!t
                
%(l1 ++ s1 l2 &ltd)
                %{if}
n
                
%{next}
                %{
end}
            </
String>
        </
FormattedText>
    </
Element

Der Ausdruck
PHP-Code:

%('L:xml_tcas_gs_0' (L:TargetListCurrentLine,stringscat )%!s!

liefert ja schon (für die ersten 10 Flugzeuge) den richtigen Wert
"L:xml_tcas_gs_00" "L:xml_tcas_gs_01" usw.

Meine Idee war nun, mit dem Ausdruck
PHP-Code:

[%(('L:xml_tcas_gs_0' (L:TargetListCurrentLine,stringscat ,knots))%!d!

"indirekt" zu adressieren. Wie erwartet, funktioniert es nicht.


:mad2:

Wer weiß Rat? Geht so etwas überhaupt oder bleibt nur die Wahl der 96fachen Wiederholung?


Gruß R.

Andragar 17.11.2005 10:53

Ich kann dir zwar nicht bei deinem eigentlichen Problem helfen,
versuche aber nicht einen Loop mit 96 Durchgängen zu schreiben. Das gibt wahrscheinlich Performanceprobleme.

Setze eine Zählvariable und frage pro Durchlauf nur einen Flieger - bzw. ein paar AI-Flieger ab und setze den Zähler eins hoch um im nächsten Durchlauf die nächsten AI-Flieger abzufragen. Dadurch wird der Flusi nicht solange durch das Gauge blockiert.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag