2.7.1  Odczyt zmiennych tablicowych

 

Poniższy przykład zapisuje do logu komunikatów wartości wszystkich elementów zmiennej tablicowej o nazwie podanej w parametrach uruchomienia.

 

C#

using System;

using System.Windows.Forms;

using Askom.AsixEvo.Scripting;

 

public class TableGet : IScript

{

    public bool Initialize(string[] aParameters, IApplication aApplication)

    {

        VariableState v = aApplication.GetVariableValue(aParameters[0], true);

        int[] valTable = (int[])(v.Value);

 

        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        foreach (int val in valTable)

        {

            sb.Append(val);

            sb.Append("  ");

        }

        aApplication.ReportMessage(EvoMessageType.Info, sb.ToString());

 

        return true;

    }

 

    public void FinalizeScript()

    {

    }

}

 

VB

Imports System

Imports System.Windows.Forms

Imports Askom.AsixEvo.Scripting

 

Public Class TableGetVB

    Implements IScript

 

    Public Function Initialize(ByVal aParameters() As StringByVal aApplication _

                                   As IApplication) As Boolean Implements IScript.Initialize

 

        Dim v As VariableState = aApplication.GetVariableValue(aParameters(0), True)

        Dim valTable() As Integer = v.Value

 

        Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()

        For Each val As Integer In valTable

            sb.Append(val)

            sb.Append("  ")

        Next val

 

        aApplication.ReportMessage(EvoMessageType.Info, sb.ToString())

 

        Return True

    End Function

 

    Public Sub FinalizeScript() Implements IScript.FinalizeScript

 

    End Sub

 

End Class 

 

Kluczowym elementem skryptu jest podstawienie do zmiennej lokalnej ValTable właściwości Value obiektu stanu zmiennej procesowej połączone z odpowiednią deklaracją typu wartości. Istotne jest zachowanie zgodności typu zmiennej valTable  z typem zmiennej procesowej wynikającym z jej definicji i sposobu pozyskania.

Oprócz pokazanego w przykładzie iterowania po wszystkich elementach tablicy, możliwy jest także bezpośredni odczyt dowolnego elementu poprzez użycie notacji indeksowej, np. valTable[5] (C#)  lub valTable(5) (VB).