DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Rechenoperation nur bei gleichem Kanalnamen in Gruppe 1 und Gruppe 2

Solved!
Go to solution

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

 

 

0 Kudos
Message 1 of 5
(3,825 Views)

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

0 Kudos
Message 2 of 5
(3,813 Views)

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

0 Kudos
Message 3 of 5
(3,795 Views)

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

0 Kudos
Message 4 of 5
(3,779 Views)
Solution
Accepted by topic author steddys

Hallo Brad!

 

Vielen Dank, das war es!

 

Sebastian

0 Kudos
Message 5 of 5
(3,775 Views)