DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

debug verschachtelte dictionarys mit arrays

Hallo Diadem User

gibt es in Diadem (eventuell mit Zusatztools) die Möglichkeit im vbs Code verschachtelte Dictionarys zu debuggen ? Im Dictionary gibt es Unterdictionarys , arrays etc. Wie kann der Inhalt dargestellt werden ? Ich kenne die Struktur des dictionarys nicht. Diese soll durch das Debug-tool dargestellt werden.

 

 

 

 

 

Gruß

Heinz

0 Kudos
Message 1 of 5
(5,887 Views)

Hallo Heinz,

 

haben Sie dazu vielleicht ein kleines Beispiel, was mit "verschachtelten Dictionarys" gemeint ist?

 

Grüße

Nina

0 Kudos
Message 2 of 5
(5,834 Views)

Hi Heinz,

 

By any chance do you have access to the Visual Studio debugger?  A developer was able to see DIAdem VBScript dictionary hierarchy in there.

 

Brad Turpin

DIAdem Product Support Engineer

National Instruments

 

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

Hallo Nina

anbei der Code der ein verschachteltes Dictionary erzeugt.

 

Dim  dict_a ,dict_b,dict_c
Dim myarray_a ,myarray_b

myarray_a=array(1,2)
myarray_b=array(1,array(6,5,4,3,2,1))
set dict_a=CreateObject("Scripting.Dictionary")
set dict_b=CreateObject("Scripting.Dictionary")
set dict_c=CreateObject("Scripting.Dictionary")

dict_a.Add "Erster Eintrag dict_a",5
dict_a.Add "Zeiter Eintrag dict_a","Ein Text"

dict_b.Add "1.Eintrag dict b",myarray_a
dict_b.Add "2.Eintrag dict_b" ,dict_a

dict_c.add "Erster Eintrag Dict_c" , dict_b
dict_c.add "Zeiter Eintrag Dict_c",myarray_b

Wie sieht nun dict_c aus ?

So könnte es visualisiert aussehen:

<Dictionary> (2)
    Erster Eintrag Dict_c [String]    ->    <Dictionary> (2)
                1.Eintrag dict b [String]    ->    Array[1](
                            Integer:    1
                            Integer:    2
                                 )
                2.Eintrag dict_b [String]    ->    <Dictionary> (2)
                            Erster Eintrag dict_a [String]    ->    Integer:    5
                            Zeiter Eintrag dict_a [String]    ->    String:    'Ein Text'
    Zeiter Eintrag Dict_c [String]    ->    Array[1](
                Integer:    1
                Array[5](
                    Integer:    6
                    Integer:    5
                    Integer:    4
                    Integer:    3
                    Integer:    2
                    Integer:    1
                         )
                     )

 

 

Gruß

Heinz

 

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

Es gibt einen Weg wenn man den Microsoft Script Debugger für SUD eingeschaltet hat.

 

Macht man sich nun einen SUD dialog der nur die folgenden Zeilen im Globalen Bereich beinhaltet

 

Option Explicit

'Note: In this area area you can program auxiliary variables and functions that you can use in the entire dialog box.
dim varToInspect
if isObject(dialog.GetArgument) then
  set varToInspect = dialog.GetArgument
else 
  varToInspect = dialog.GetArgument
end if
' check the content of varToInspect. It is possible to do method calls on it in the debugger
stop ' the jit debuger will stop here
dialog.Cancel

 und nutzt diesen SUD dann folgendermaßen

 

Option Explicit  'Forces the explicit declaration of all the variables in a script.

Dim  dict_a ,dict_b,dict_c
Dim myarray_a ,myarray_b

myarray_a=array(1,2)
myarray_b=array(1,array(6,5,4,3,2,1))
set dict_a=CreateObject("Scripting.Dictionary")
set dict_b=CreateObject("Scripting.Dictionary")
set dict_c=CreateObject("Scripting.Dictionary")

dict_a.Add "Erster Eintrag dict_a",5
dict_a.Add "Zeiter Eintrag dict_a","Ein Text"

dict_b.Add "1.Eintrag dict b",myarray_a
dict_b.Add "2.Eintrag dict_b" ,dict_a

dict_c.add "Erster Eintrag Dict_c" , dict_b
dict_c.add "Zeiter Eintrag Dict_c",myarray_b

call SuddlgShow("Dlg1", CurrentScriptPath & "debugWithSud.sud", dict_c)

 kann man im dann hochflammenden Script debugger den Inhat des Dictionaries untersuchen. Dies funktioniert über Script Befehle die man im Watch Fenster eingeben kann.

 

 

pic.jpg

 

ist nicht ganz komfortabel aber vielleicht hilft es.

0 Kudos
Message 5 of 5
(5,757 Views)