03-08-2013 10:19 AM
Hallo Community,
ich habe da ein Problem mit dem ChnMove Befehl bzw. dessen Parameter. "Call ChnMove(SourceChn, TargetGroupIndex, TargetChnIndex)"
Ich will die Kanäle in mehreren Kanalgruppen nach Namen sortieren.
Laut der Diademhilfe kann der SourceChannel über die Kanalnummer oder den Kanalnamen erfolgen.
Wenn ich den Kanal über den Namen anspreche so wie hier:
Call ChnMove(Data.Root.ChannelGroups(i).Channels(j).Name, i, k)
dann verschiebt mir der Befehl alle meine Kanäle in andere Kanalgruppen und haut sie irgendwie durcheinander
Habe jetzt nach Stunden folgende Variante herausgefunden mit dem ansprechen über die Kanalnummer.
Call ChnMove("["&cstr(i)&"]/["&cstr(j)&"]", i, k)
So funktioniert es. Aber warum nicht auf die erste Art??
Hier mal ein Beispielkript, dazu im Anhang auch ne Beispieldatei und die Scriptdatei:
----------------------------------
Option Explicit 'Erzwingt die explizite Deklaration aller Variablen in einem Script.
Dim i, j, k
Private Function fKanalname(index)
Dim v_name
Select Case index
Case 1
v_name = "Tj"
Case 2
v_name = "Pv"
Case 3
v_name = "Uce"
End Select
fKanalname = v_name
End Function
For i = 1 to GroupCount
For k = 1 to Data.Root.ChannelGroups(i).Channels.Count
For j = 1 to Data.Root.ChannelGroups(i).Channels.Count
If (Data.Root.ChannelGroups(i).Channels(j).Name = fKanalname(k)) Then
'Call ChnMove("["&cstr(i)&"]/["&cstr(j)&"]", i, k)
'Call ChnMove(Data.Root.ChannelGroups(i).Channels(j).Name, i, k)
End If
Next
Next
Next
----------------------------------
Schonmal Vielen Dank
Grüße
Tobias
03-11-2013 06:01 AM
Hallo TobiasK,
im Beispiel: "Sortieren der Kanäle in der Default-Gruppe" wird gezeigt, wie die Kanäle der Default-Gruppe sortiert werden. Das zugehörige Script heißt: "SortChannels.vbs". Vielleicht hilft das weiter.
Gruß
Walter