Harbour Handbuch – DE
HTML-Ausgabe

Kapitel 5: Komplexe Datentypen

In Harbour gibt es neben einfachen Datentypen wie numerisch, Zeichenkette und logisch auch komplexe Datentypen, die es erlauben, Informationen effizienter zu strukturieren und zu handhaben. Die beiden wichtigsten sind **Arrays** und **Hashes**.

Arrays

Ein Array (oder Feld) ist eine geordnete Sammlung von Elementen. Jedes Element im Array hat eine Position oder einen numerischen Index, der in Harbour bei 1 beginnt. Arrays können Elemente jedes Datentyps enthalten – sogar andere Arrays oder Hashes!

Erstellung von Arrays

Du kannst ein Array auf verschiedene Arten erstellen:


// Ein leeres Array
LOCAL aMeinArray1 := {}

// Ein Array mit initialen Elementen
LOCAL aMeinArray2 := { "Apfel", "Banane", "Orange" }

// Verwendung der Funktion Array(), um ein Array einer bestimmten Größe zu erstellen
LOCAL aMeinArray3 := Array(10) // Erstellt ein Array mit 10 NIL-Elementen

Zugriff und Modifikation

Auf Elemente wird über ihren numerischen Index in eckigen Klammern [] zugegriffen.


LOCAL aFrüchte := { "Apfel", "Banane", "Orange" }

? aFrüchte[1] // Zeigt "Apfel"
? aFrüchte[3] // Zeigt "Orange"

// Ein Element modifizieren
aFrüchte[2] := "Erdbeere"
? aFrüchte[2] // Zeigt "Erdbeere"

Häufige Funktionen für Arrays

Hashes

Ein Hash (auch bekannt als Wörterbuch oder Map in anderen Sprachen) ist eine Sammlung von Schlüssel-Wert-Paaren. Anstatt einen numerischen Index zu verwenden, wird ein "Schlüssel" (normalerweise eine Zeichenkette) verwendet, um auf seinen zugehörigen "Wert" zuzugreifen. Hashes sind extrem nützlich zum Speichern strukturierter Daten.

Erstellung von Hashes


// Ein leerer Hash
LOCAL hMeinHash1 := {=>}

// Ein Hash mit initialen Schlüssel-Wert-Paaren
LOCAL hPerson := { "name" => "Jan", "alter" => 30, "stadt" => "Berlin" }

// Verwendung der Funktion HSet()
LOCAL hMeinHash2 := {=>}
HSet( hMeinHash2, "schluessel1", "wert1" )

Zugriff und Modifikation

Auf Werte wird über ihren Schlüssel zugegriffen, unter Verwendung der Syntax hMeinHash["schluessel"]