3. Überblick Map

Eine Map (Dictionary, Symboltabelle, Wörterbuch) ist eine Sammlung von Daten auf die über einen Schlüssel zugegriffen werden kann. Die Daten können entweder Zahlen, Zeichenketten oder komplexe Zahlen oder Matrizen der 3 Typen sein.

Die mit MapCreate erzeugten Maps sind nicht so leistungsfähig, wie die mit obj_create erzeugten Maps. Sie werden aber noch benötigt, um Maps in UniPlot-Objekte zu packen (siehe OBJSetMap).

Beispiel

hMap = MapCreate();
MapSetAt(hMap, "Mot-No12", ["1,6l", "4 Valves", "74kW"]);
MapSetAt(hMap, "Mot-No432", ["2.0l", "4 Valves", "100kW"]);
MapSetAt(hMap, "Mot-No42", ["2.5l", "4 Valves", "115kW"]);
MapSetAt(hMap, "Mot-No132", ["3.0l", "4 Valves", "150kW"]);
ssKey = "Mot-No42";
svMotData = MapLookup(hMap, ssKey);
if (ObjGetOk() == FALSE) {
    MessageBox(sprintf("Key \"%s\" not found", ssKey));
    return FALSE;
}
sprintf("The engine has %s" svMotData[3]);

Ab UniPlot 2.5.2 können Maps nicht nur als eigenständige Dateien gespeichert werden, sondern auch in anderen UniPlot-Objekten enthalten sein. Folgende UniPlot-Objekte können Maps enthalten: UniPlot-Dokument, Dokument-Seite, alle Zeichenobjekte, Datensätze.

  Erzeugen und Zerstören
MapCreate MapCreate erzeugt ein neues Map-Objekt.
MapDestroy MapDestroy löscht ein Map-Objekt und alle Daten, die sich im Map-Objekt befinden.
  Setzen
MapInitHashTable MapInitHashTable initialisiert die Hash-Tabelle.
MapLoad Liest Daten aus einer mit MapSave erzeugten Datei.
MapPrint MapPrint druckt den Inhalt eines Map-Objekts in das Kommandofenster.
MapRemoveAt MapRemoveAt entfernt den angegebenen Schlüssel und die entsprechenden Daten aus der Map.
MapSave MapSave sichert die Daten der Map in einer Datei.
MapSetAt MapSetAt fügt ein Datum in das Map-Objekt ein. Falls ein Datum mit einem identischen Schlüssel bereits existiert, wird es überschrieben.
OBJRemoveMap OBJRemoveMap entfernt aus einem Objekt eine Map.
OBJSetMap OBJSetMap speichert eine Map in einem Objekt.
  Erfragen
MapCopy MapCopy erzeugt eine Kopie eines Map-Objekts.
MapGetCount MapGetCount liefert die Anzahl der Elemente im Map-Objekt.
MapGetKeys MapGetKeys liefert einen Vektor mit den Schlüsseln der Tabelle.
MapKeyExists MapKeyExists prüft, ob ein Schlüssel im Map-Objekt existiert.
MapLookup MapLookup verwendet einen Hashing Algorithmus um ein Element im Map-Objekt zu finden.
OBJGetMap OBJGetMap liefert die Zugriffsnummer einer Map, welche in einem Objekt unter einem Namen gespeichert wurde.
OBJGetMapNames OBJGetMapNames liefert einen String-Vektor mit den Namen der Maps eines Objekts oder einen leeren String, falls das Objekt keine Maps enthält.

id-630667