Objekt PmArray (Pole hodnot)
Popis:
Objekt představuje pole hodnot. Tento objekt se používá ve skriptech v jazyce
JavaScript.
Poznámka:
V
JavaScript obrazech aplikace PROMOTIC nelze využívat standardní pole jazyka
VBScript ani jazyka
JavaScript (viz
Datové typy jazyka). V těchto obrazech všechny vlastnosti a metody používají pole
PmArray - viz
Jak pracovat s polem hodnot v systému PROMOTIC.
Porovnání objektů pro držení hodnot:
Následující typy objektů jsou určené k držení hodnot (libovolného datového typu). Každý z těchto objektů má své výhody a nevýhody a volba závisí na požadovaném používání.
PmArray: Tento objekt obsahuje hodnoty, které jsou přístupné indexem do pole - lze tedy kdykoli přečíst jakoukoli hodnotu v tomto objektu. Čtení a zápis hodnoty je velmi rychlé, přidávání hodnot je však pomalé.
Tento objekt je funkční pouze pro jazyk
JavaScript, pro jazyk
VBScript je pole v podobě datového typu
Array.
PmMap: Tento objekt obsahuje hodnoty, které jsou přístupné svým názvem (textovým identifikátorem). Názvy těchto hodnot představují vlastnosti objektu. Výhoda je, že díky názvům je kód ve skriptu "čitelnější". Nevýhoda je, že nelze přistupovat k hodnotám v cyklu, kdy je potřeba získávat hodnoty pomocí indexu.
PmBuffer: Tento objekt obsahuje binární hodnoty v datovém bloku. Pro čtení/zápis jednotlivé hodnoty je nutno znát její pozici (offset) v datovém bloku a také její datový typ (velikost).
Příklad2:
Vytvoří a naplní 2-rozměrné pole
JavaScriptVyber a zkopíruj do schránky
var arr = Pm.CreatePmArray(2, 2, 3);
arr.SetItem(11, 0, 0);
arr.SetItem(12, 1, 0);
arr.SetItem(21, 0, 1);
arr.SetItem(22, 1, 1);
arr.SetItem(31, 0, 2);
arr.SetItem(32, 1, 2);
Příklad3:
Vyčte hodnoty 2-rozměrného pole získaného pomocí uživatelské metody obrazu.
JavaScriptVyber a zkopíruj do schránky
var arr = pMe.PmPanel.Methods().GetDataArray();
var n1 = arr.GetSize(1);
var n2 = arr.GetSize(2);
for (iR = 0; iR < n1; iR++)
{
for (iC = 0; iC < n2; iC++)
{
// Vyčte hodnoty 2-rozměrného pole získaného pomocí uživatelské metody obrazu.
var val = arr.GetItem(n1, n2);
}
}