Chunk expressions

Chunk Ausdrücke (=chunk expressions) sind die primäre Methode von LiveCode im Umgang mit Textverarbeitung. Ein Chunk (=Brocken, Stück) ist in diesem Zusammenhang die Definition eines exakten Textbereiches innerhalb des gesamten Texts, der bearbeitet oder gelesen wird. Chunks können sowohl zum Abrufen als auch zum Editieren von Text verwendet werden.

Die üblichen Chunk Typen sind:

* Character (=Zeichen),
* Word (=Wort),
* Line (=Zeile) und
* Item (=Stück).

Ein Item kann durch jedes beliebige Trennzeichen isoliert sein. Dieses Trennzeichen kann mit der Eigenschaft itemDelimiter festgelegt werden.

In LiveCode gibt es sogenannte Container (=Behälter), von denen 7 Typen unterschieden werden können.

* Variable
* Field (=Feld)
* Button (=Schaltfläche)
* Image (=Bild)
* URL (=Uniform Resource Locator)
* Selection (die aktuelle Auswahl)
* die Message-Box.

Der Inhalt dieser Container kann mit Hilfe der Chunk Ausdrücke bearbeitet werden.Überall im Code, wo einer dieser Container verwendet werden kann, kann auch ein Chunk des Containers eingesetzt werden. Zum Beispiel kann der Befehl add genutzt werden, um der Zeile eines Feldes eine Zahl anzufügen.

## Einen Chunk abrufen

Der einfachste Chunk Ausdruck gibt einen einzelnen Chunk jeden Types an. Die folgenden Ausdrücke sind allesamt gültig:

```
get char 2 of field "text" -- returns 'o'

```

```
get word 4 of field "text" -- returns 'sit'

```

```
get line 3 of field "text" -- returns 'Cum sociis natoque penatibus et..."

```

## Text editieren

Chunk Ausdrücke können auch zur Bearbeitung von Text eingesetzt werden, indem eine Wortgruppe in einen bestimmten Chunk eingefügt wird. Hier ein Beispiel um die erste Zeile im Feld "Text" durch "Hello World" zu ersetzen:

```
put "Hello world" into line 1 of field "text"

```

## Item Beispiel

Standardmäßig ist das Komma als Trennzeichen für Items festgelegt. Mit Hilfe der Eigenschaft itemDelimiter kann ein anderes Trennzeichen festgelegt werden. Hier ein Beispiel:

```
on mouseUp
 set the itemDelimiter to ":"
 answer item 7 of field "text"
end mouseUp

```

Ein Item kann Zeichen oder Wörter aber keine Zeilen enthalten. Items können in einer Zeile enthalten sein, aber nicht in einem Wort, oder in einem Zeichen.

## Negative Indizes in Chunk Ausdrücken

Durch Angabe von negativen Indizes wird vom Ende eines Ausdruckes rückwärts zählend ein Chunk definiert.

Zum Beispiel:

```
put word -1 of field "text"

```

gibt das letzte Wort des Feldes an,

```
put word -2 of field "text"

```

das vorletzte Wort, und so weiter.

## Komplexe Chunk Ausdrücke

Komplexere Chunk Ausdrücke kann man durch Verschachtelung konstruieren. Also indem man einen Chunk innerhalb eines Chunks angibt. Zum Beispiel kann das 4. Word von Zeile 250 angesprochen werden:

```
put word 4 of line 250 of myText

```

Will man Chunks unterschiedlichen Typs kombinieren, so muss man die Chunk Typen geordnet anführen:

Das folgende Beispiel ist ein gültiger Chunk Ausdruck :

```
put char 4 of word 9 of line 3 of field "text"

```

und das folgende nicht:

```
put word 9 of char 3 of field "text"

```

## Einen Bereich angeben

Will man einen Teil angeben, der größer als ein einzelner Chunk ist, so definiert man einen Bereich durch Angabe von Anfang und Ende. Hier ein Beispiel:

```
answer char 2 to 4 of word 1 of field "text"

```

oder um die letzten 5 Zeichen eines Wortes zu erhalten:

```
answer char -5 to -1 of word 1 of field "text"

```