Update cookies preferences
Promotic

Insert - metoda objektu PmArray

Popis:
Přidá jednu nebo více položek/řádků do pole. Pole se zvětší o přidané položky/řádky.
Syntaxe:
Empty Insert(Long nPos, Variant vValues, [Long nType])
Parametry:
nPos(Long) Index položky/řádku pro přidání. Stávající položka/řádek na tomto indexu a následující se posunou za přidávané položky/řádky. Lze uvést i index první, ještě neexistující položky/řádku na konci, pak se přidá na tuto pozici na konec.
Hodnota -2 znamená přidat na konec.
vValues(Variant) Představuje hodnoty přidávaných položek/řádků nebo jejich počet. Význam závisí na parametru nType a také na typu pole (1-rozměrné pole nebo 2-rozměrné pole).
nType[nepovinné] (Long) Parametr určuje význam parametru vValues.
0 (přednastaveno) - Přidává vždy 1 položku/řádek a nastaví hodnoty z parametru vValues.
Pro 1-rozměrné pole může parametr vValues obsahovat jakoukoliv hodnotu a ta se přidá jako jedna položka.
Pro 2-rozměrné pole musí parametr vValues obsahovat jeden řádek (1-rozměrné pole) a ten se přidá jako jeden řádek. Velikost přidavaného pole se musí rovnat počtu sloupců pole.
1 - Přidává najednou více položek/řádků a nastaví hodnoty z parametru vValues.
Pro 1-rozměrné pole musí parametr vValues obsahovat 1-rozměrné pole s položkami.
Pro 2-rozměrné pole musí parametr vValues obsahovat 2-rozměrné pole s řádky. Počet sloupců přidavaného pole se musí rovnat počtu sloupců pole.
2 - Přidává jeden nebo více položek/řádků a položkám nastaví prázdné hodnoty (undefined).
Pro 1-rozměrné pole musí parametr vValues obsahovat číslo s počtem přidávaných prázdných položek.
Pro 2-rozměrné pole musí parametr vValues obsahovat číslo s počtem přidávaných prázdných řádků.
Poznámka:
Metoda Insert umožňuje přidávat položky na začátek, na konec i dovnitř existujícího pole a metoda Remove umožňuje odstraňovat položky od začátku, z konce i zevnitř existujícího pole.
 
Tato metoda je ale velmi pomalá pro velká pole a není vhodná pro rychlé automatické zpracování datových polí. Vhodnější je dopředu alokovat větší velikost pole a po naplnění hodnotami prázdné položky metodou Remove odstranit. Viz Příklad2.
 
Pro 2-rozměrné pole je nutno dodržovat zásadu správného pořadí rozměrů pole (sloupce, řádky). Viz (Col,Row) - 2-rozměrné pole s významem pole řádků.

Tato metoda je funkční i ve Web obrazech.
Příklad1:
Přidá pole a2 do pole a1 na pozici 2
JavaScriptVyber a zkopíruj do schránky

var a1 = Pm.Array1(0, 10, 20, 30);
var a2 = Pm.Array1(12, 13, 14);
a1.Insert(2, a2, 0);   // Výsledek: (0, 10, (12, 13, 14), 20, 30)
// nebo
a1.Insert(2, a2, 1);   // Výsledek: (0, 10, 12, 13, 14, 20, 30)
Příklad2:
Přidá tři prázné položky na konec 1-rozměrného pole (undefined)
JavaScriptVyber a zkopíruj do schránky

var a1 = Pm.Array1(0, 10, 20, 30);
a1.Insert(-2, 3, 2);   // Výsledek: (0, 10, 20, 30, , , )
Příklad3:
Vloží řádek do 2-rozměrného pole
JavaScriptVyber a zkopíruj do schránky

var a1 = Pm.CreatePmArray(2, 2, 3);
a1.SetItem(1, 0, 0);
a1.SetItem(11, 1, 0);
a1.SetItem(2, 0, 1);
a1.SetItem(22, 1, 1);
a1.SetItem(3, 0, 2);
a1.SetItem(33, 1, 2);

var a2 = Pm.Array1(9, 99);

// Vloží řádek do 2-rozměrného pole
// na začátek
a1.Insert(0, a2, 0);

// Přidá pole a2 do pole a1 na pozici 2
a1.Insert(2, a2, 0);

// na konec
a1.Insert(-2, a2, 0);

// 3 řádky s prázdnými hodnotami na 2 pozici
a1.Insert(2, 3, 2);
Příklad4:
Do 2-rozměrného pole vloží jiné 2-rozměrné pole
JavaScriptVyber a zkopíruj do schránky

var a1 = Pm.CreatePmArray(2, 2, 3);
a1.SetItem(1, 0, 0);
a1.SetItem(11, 1, 0);
a1.SetItem(2, 0, 1);
a1.SetItem(22, 1, 1);
a1.SetItem(3, 0, 2);
a1.SetItem(33, 1, 2);

var a2 = Pm.CreatePmArray(2, 2, 2);
a2.SetItem(9, 0, 0);
a2.SetItem(99, 1, 0);
a2.SetItem(8, 0, 1);
a2.SetItem(88, 1, 1);

// Do 2-rozměrného pole vloží jiné 2-rozměrné pole
// na začátek
a1.Insert(0, a2, 0);

// na 2 pozici
a1.Insert(2, a2, 0);

// na konec
a1.Insert(-2, a2, 0);

Historie:
Pm9.00.29:
- Přidána podpora pro přidávání řádků pro 2-rozměrné pole.
- Nová volba 2 v parametru nType umožňující přidávat prázdné položky/řádky.
Pm9.00.04: Vytvořeno
© MICROSYS, spol. s r.o.