IndexOf

TwinCAT TIA
Werkzeuge String Funktionen

ns=2;s=DEPRAG Smart/Utilities/StringOperations/IndexOf

Sucht einen Text in einem anderen Text und gibt die nullbasierte Position des ersten Auftretens zurück.

Parameter:

    Value
    Der Text nach der gesucht werden soll.

Rückgabewert:

    IndexOf
    Eine Struktur-Variable vom Typ OpcMethodReturnValueInt32. In der Eigenschaft Result sind die befehlsspezifischen Rückgabewerte enthalten.
      Result
      Die nullbasierte Indexposition des ersten Vorkommens. Wird der Text nicht gefunden, wird -1 zurückggeben.

Beispiele:

Neben den bereits erläuterten Parametern sind für die Implementierung in TwinCAT 3 nachfolgende Variablen anzulegen / zu übergeben:

Beckhoff Parameter:

    bStringIndexOf
    Eine boolesche Variable, über welche die Ausführung des IndexOf-Befehls getriggert werden kann.
    OutputDataStringIndexOf
    Eine Instanz der "ST_Int32OutputData" Struktur in welche der Rückgabewert der IndexOf-Methode geschrieben wird.
    hrStringIndexOf
    Hiermit kann die Ausführung des Befehls überwacht werden. Fehler-Codes haben den Typ "HRESULT".
    fbStringOperations
    Eine Instanz des, mit der DEPRAG Smart-Bibliothek gelieferten, "FB_StringOperations" Funktionsbausteins.
    StringToSearchIn
    Der Text in dem gesucht werden soll.
    StringToSearchInLength
    Die Länge der Zeichenkette in der gesucht werden soll.
    StringToSearchFor
    Die zu suchende Zeichenkette vom Typ "STRING(80)".
    StringToSearchForLength
    Die Länge der zu suchenden Zeichenkette.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
    bStringIndexOf   : BOOL;
    OutputDataStringIndexOf : ST_Int32OutputData;
    hrStringIndexOf   : HRESULT;

    fbStringOperations : FB_StringOperations;
END_VAR

hrStringIndexOf := fbStringOperations.StringIndexOf(
      bExecute     := bStringConcat, 
      ConnectionHandle  := depragSmartConnection.ConnectionHandle,
      StringToSearchIn  := 'IamATestString',
      StringToSearchInLength := SIZEOF('IamATestString'),
      StringToSearchFor  := 'Test',
      StringToSearchForLength := SIZEOF('Test'), 
      OutputData    => OutputDataStringIndexOf);
IF hrStringIndexOf <> S_FALSE THEN 
      bStringIndexOf := FALSE;
END_IF
                                                    

Für Beispiele und Erklärungen bezüglich der Aufrufe von Knoten via Siemens TIA Portal sei an dieser Stelle auf den Unterpunkt "Siemens TIA Portal" in Abschnitt "Erste Schritte" verwiesen.