Zum Inhalt

Buffer search

Type Funktion INT
Input PT POINTER (Adresse des Puffers)
SIZE UINT (Größe des Puffers)
STR STRING (Suchstring)
POS INT (Position ab der gesucht wird)
IGN BOOL (Search Groß / Kleinschreibung)
Output INT (Position an der die Zeichenkette gefunden wurde)
Die Funktion BUFFER_SEARCH durchsucht ein beliebiges Array of Byte auf den Inhalt einer Zeichenkette und meldet die Position des ersten Zeichens der Zeichenkette im Array wenn eine Übereinstimmung gefunden wird. Der Puffer wird ab einer beliebigen Position POS durchsucht. Das erste Element im Array hat die Positionsnummer 0. Beim Aufruf wird der Funktion ein Pointer auf das zu bearbeitende Array und dessen Größe in Bytes übergeben. Unter CoDeSys lautet der Aufruf BUFFER_SEARCH(ADR(Array), SIZEOF(ARRAY), STR, POS, IGN), wobei ARRAY der Name des Arrays ist. ADR ist eine Standardfunktion, die den Pointer auf das Array ermittelt und SIZEOF ist eine Standardfunktion, die die Größe des Arrays ermittelt. Die Funktion liefert die aus dem Puffer kopierte Zeichenkette als STRING zurück. Diese Art der Bearbeitung von Arrays ist äußerst effizient, da kein zusätzlicher Speicher benötigt wird und keine Übergabewerte kopiert werden müssen. Wenn IGN = TRUE werden sowohl Groß- als auch Klein-buchstaben als Übereinstimmung gefunden, STR muss dabei in Großbuchstaben vorhanden sein. Wenn IGN = FALSE wird Case sensitiv gesucht.

buffer_search

Beispiel:

BUFFER_SEARCH(ADR(Array), SIZEOF(ARRAY), 'FIND', 0, TRUE) Findet 'FIND', 'Find', 'find' .... im Array. Beispiel: BUFFER_SEARCH(ADR(Array), SIZEOF(ARRAY), 'FIND', 0, FALSE) Findet nur 'FIND' im Array.