Nutzung der For-Funktion

C

cramu

Dauergast
312
Eine Sache, die mir mangels Programmierkenntnisse nie verständlich war, ist die Anwendung der For-Funktion.

Im konkreten Fall möchte ich die gespoilerte XML meiner Radio-App parsen, so dass ich zu jedem Sendernamen die zugehörige URL erhalte, um dann im weiteren Verlauf des Tasks die korrekte URL ausgegeben zu bekommen, wenn ich nach einem konkreten Sender suche.
Es sollen ebenso alle URLs ihrem Genre zugeordnet werden, damit ich den Sender randomisieren kann, wenn ich einen bestimmten Stil hören möchte.

Derzeit nutze ich noch den Sendernamen als Splitter und isoliere per Search & Replace die URL, aber mit einer For-Schleife sollte der Vorgang doch deutlich effizienter ablaufen.

<?xml version="1.0" encoding="UTF-8"?>
<data type="0" ver="2" >
<stations>
<station t="Electro Swing Revolution Radio - The 1st Electro Swing Radio worldwide!" c="Electro Swing" e="" su="" sm="" sc="http://groove.wavestreamer.com:7115/live" scm="audio/mp3" scb="128" pc="7" dc="1421084384393"/>
<station t="Electro Swing by Jazz Radio {Powered by Infomaniak.Net}" c="Electro Swing" e="" su="" sm="" sc="http://jazz-wr04.ice.infomaniak.ch/jazz-wr04-128.mp3" scm="audio/mp3" scb="128" pc="7" dc="1420484425918"/>
<station t="themashupradio" c="Mashup" e="" su="" sm="" sc="http://streaming.radionomy.com/themashupradio" scm="audio/mp3" scb="128" pc="3" dc="1420397281035"/>
<station t="Rinse FM" c="Dance" e="" su="" sm="" sc="http://typhoon.exequo.org:8000/rinseradio" scm="audio/mp3" scb="96" pc="2" dc="1420397424736"/>
<station t="ANTENNE BAYERN Oldies but Goldies" c="Oldies" e="" su="" sm="" sc="http://mp3channels.webradio.antenne.de/oldies-but-goldies" scm="audio/mp3" scb="128" pc="10" dc="1421085577492"/>
<station t="Fritz vom rbb live hören - Homepage | Fritz vom rbb (und das hört man) (c) Rundfunk Berlin-Brandenburg" c="Urban" e="" su="" sm="" sc="http://fritz.de/livemp3" scm="audio/mp3" scb="128" pc="1" dc="1420397900818"/>
<station t="radioeins vom rbb live hören - Homepage | radioeins (c) Rundfunk Berlin-Brandenburg" c="Urban" e="" su="" sm="" sc="http://radioeins.de/stream" scm="audio/mp3" scb="128" pc="1" dc="1420398009168"/>
<station t="MDR Sputnik" c="Urban" e="" su="" sm="" sc="http://c22033-ls.i.core.cdn.streamfarm.net/UjIe753Ui9922033/22033mdr/live/app2128740352/w2128904195/live_de_128.mp3" scm="audio/mp3" scb="128" pc="2" dc="1420403462604"/>
<station t="Bassdrive - Worldwide Drum and Bass Radio" c="Dance" e="" su="" sm="" sc="http://beezle.streams.bassdrive.com:8765/" scm="audio/mp3" scb="128" pc="0" dc="1424393106962"/>
<station t="NTS LIVE BROADCAST&apos;s Broadcast" c="Dance" e="" su="" sm="" sc="http://listen.ntslive.co.uk/stream" scm="audio/mp3" scb="128" pc="1" dc="1424470789415"/>
</stations>
</data>
 
Hallo!

Mit der For-Schleife sparst du eigentlich nur drei Aktionen gegenüber if/goto und es wird etwas übersichtlicher. Das splitten, sowie Search/Replace musst du ja trotzdem noch machen. Vielleicht kannst du deinen aktuellen Task mal hier hochladen?


Hier mal ein Beispiel ohne und mit for-Schleife:
Code:
IfLoop (66)
    A1: Variable Set [ Name:%array To:Apfel,Birne,Banane Do Maths:Off Append:Off ] 
    A2: Variable Split [ Name:%array Splitter:, Delete Base:Off ] 
    A3: Variable Set [ Name:%counter To:0 Do Maths:Off Append:Off ] 
    <Bedingung>
    A4: If [ %counter < %array(#) ]
    A5: Variable Add [ Name:%counter Value:1 Wrap Around:0 ] 
    A6: Flash [ Text:%array(%counter) Long:Off ] 
    A7: Goto [ Type:Action Label Number:1 Label:Bedingung ] 
    A8: End If 



For (65)
    A1: Variable Set [ Name:%array To:Apfel,Birne,Banane Do Maths:Off Append:Off ] 
    A2: Variable Split [ Name:%array Splitter:, Delete Base:Off ] 
    A3: For [ Variable:%item Items:%array() ] 
    A4: Flash [ Text:%item Long:Off ] 
    A5: End For
Grüße, Jürgen.
 
Nein, das stimmt schon so. %item bekommt tatsächlich bei jedem Schleifendurchlauf den Wert und nicht den Index zugewiesen.

Grüße, Jürgen.
 

Ähnliche Themen

P
Antworten
0
Aufrufe
206
pandoraGUFSZ
P
miblu29
  • miblu29
Antworten
0
Aufrufe
316
miblu29
miblu29
M
Antworten
0
Aufrufe
487
mkaleu
M
Zurück
Oben Unten