2.7.2  Zapis zmiennych tablicowych

 

Następny przykład pokazuje sposób wykorzystania zmiennych tablicowych do przechowywania wielu informacji w pojedynczej zmiennej. Skrypt odczytuje zawartość pliku tekstowego zawierającego komunikaty, które zostaną wyświetlone na diagramie. Odczytywanych jest pierwsze pięć linii pliku. Odczytane teksty zapisywane są do kolejnych elementów zmiennej procesowej.

Zakłada się, że  wykorzystywana zmienna znajduje się w kanale typu NONE, a jej atrybut Typ wartości  jest równy Table.

C#

using System;

using System.IO;

using System.Windows.Forms;

using Askom.AsixEvo.Scripting;

 

public class Messages : IScript

{

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

    {

        try

        {

 

            StreamReader file = new StreamReader(aParameters[0],System.Text.Encoding.Default);

            string[] msgs = new string[5];

            msgs[0] = file.ReadLine();

            msgs[1] = file.ReadLine();

            msgs[2] = file.ReadLine();

            msgs[3] = file.ReadLine();

            msgs[4] = file.ReadLine();

 

            aApplication.SetVariableValue(aParameters[1], msgs);

            file.Close();

        }

        catch (Exception e)

        {

            aApplication.ReportMessage(EvoMessageType.Info,"Error in Messages: " + e.Message);

        }

        return true;

    }

 

    public void FinalizeScript()

    {

    }

}

 

VB

Imports System

Imports System.IO

Imports System.Windows.Forms

Imports Askom.AsixEvo.Scripting

 

Public Class MessagesVB

    Implements IScript

 

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

                                    As IApplication) As Boolean Implements IScript.Initialize

 

        Try

            Dim file As StreamReader = _

                             New StreamReader(aParameters(0), System.Text.Encoding.Default)

            Dim msgs(4) As String

            msgs(0) = file.ReadLine()

            msgs(1) = file.ReadLine()

            msgs(2) = file.ReadLine()

            msgs(3) = file.ReadLine()

            msgs(4) = file.ReadLine()

 

            aApplication.SetVariableValue(aParameters(1),msgs)

            file.Close()

        Catch e As Exception

            aApplication.ReportMessage(EvoMessageType.Info,"Error in Messages: " + e.Message)

        End Try

 

        Return True

 

    End Function

 

    Public Sub FinalizeScript() Implements IScript.FinalizeScript

    End Sub

 

End Class 

 

W skrypcie tworzona jest lokalna 5-elementowa zmienna tablicowa. Następnie na podstawie zawartości pliku tekstowego ustawiane są jej kolejne elementu. Działanie skryptu kończy standardowe wywołanie metody SetVariableValue interfejsu IApplication.

W obiektach diagramu można odwołać się do elementu zmiennej tablicowej przy pomocy funkcji  TableElement, np. TableElement(Variable(zmienna),2).