06-08-2010 03:37 AM
Hallo zusammen!
Ich habe zwei Kanalgruppen, in der nach Möglichkeit die gleichen Kanäle vorhanden sind, also Anzahl + Namen gleich. Es kann nun aber vorkommen, dass in einer Kanalgruppe bei den Kanälen Rechtschreibfehler auftauchen, Bsp. Name Kanal in Gruppe1 = "t_Aussen" und Name Kanal in Gruppe 2 = "t_Ausen".
Ich möchte nun eine Rechenoperation solange ausführen, solange die Namen der Kanäle in den Gruppen identisch sind, also in der Form:
for i=1 to xxx
if Name.Kanal(i).Gruppe(1) = Name.Kanal(i).Gruppe(2) then
...
else
msgbox "Name.Kanal(i).Gruppe(1) <> Name.Kanal(i).Gruppe(2)"
end if
next
Es wäre auch sinnvoll, erst zu überprüfen, ob es den Namen des Kanals(i) in Gruppe 1 überhaupt in Gruppe 2 gibt, wenn es ihn nicht gibt soll die Rechenoperation abgebrochen werden und die unterschiedlichen Kanalnamen sollen angezeigt werden.
Vielen Dank für eure Hilfe!
Sebastian
Solved! Go to Solution.
06-08-2010 10:03 AM
Hallo Sebastian,
Hier ist, glaube ich, das VBScript das gesucht wird:
Dim Groups, Group, Channel, ChanName, Msg
ChanName = "t_Aussen"
Set Groups = Data.Root.ChannelGroups
IF Groups.Count > 0 THEN
FOR Each Group In Groups
IF NOT Group.Channels.Exists(ChanName) THEN
MsgBox "Channel Not Found: " & Group.Name & "/" & ChanName
Exit For ' Groups
END IF ' Channel Found
Set Channel = Group.Channels(ChanName)
Msg = "Analyzing: " & Group.Name & "/" & ChanName
Call MsgBoxDisp(Msg, "MB_NOBUTTON", "MsgTypeNote", 0, 0, 1)
Call Pause(1) ' remove in actual code
' Channel Analysis
NEXT ' Group
Call MsgBoxCancel
END IF
Brad Turpin
DIAdem Product Support Engineer
National Instruments
06-09-2010 04:01 AM
Hallo Brad,
vielen Dank für das Script. Leider läuft dies nur unter Diadem 11.x, es muß aber auch unter Diadem 10.x laufen und dort funktionieren die "Data.Root.x"-Befehle nicht!
Vielen Dank
Sebastian
06-09-2010 09:01 AM
Hi Sebastian,
Na dann, auf DIAdem 10.x Basis:
Dim i, ChNum, ChanName, Msg
ChanName = "t_Aussen"
FOR i = 1 TO GroupCount
ChNum = CNo("[" & i & "]/" & ChanName)
IF NOT ChNum > 0 THEN
Call MsgBoxCancel
MsgBox "Channel Not Found: " & GroupName(i) & "/" & ChanName
Exit For ' Groups
END IF ' Channel Found
Msg = "Analyzing: " & GroupName(i) & "/" & ChanName
Call MsgBoxDisp(Msg, "MB_NOBUTTON", "MsgTypeNote", 0, 0, 1)
Call Pause(1) ' remove in actual code
' Channel Analysis
NEXT ' i, Group
Call MsgBoxCancel
Brad Turpin
DIAdem Product Support Engineer
National Instruments
06-09-2010 09:50 AM
Hallo Brad!
Vielen Dank, das war es!
Sebastian