Update cookies preferences
Promotic

FindReplaceBuffer - metoda obiektu PmBuffer

Opis:
Zastępuje wystąpienia szukanego bloku danych w bloku danych innym blokiem danych.
Składnia:
Long FindReplaceBuffer(Long nOffset, Object oFind, Object oReplace, [Long nCount])
Parametry:
nOffset(Long) Określa pozycję odczytywanej wartości w bloku danych.
Cała odczytywana wartość musi znajdować się w bloku danych. Pozycja zostanie odczytana albo w całości lub wogóle.
>= 0 - Indeks (w bajtach, indeksowane od 0) w bloku danych.
-4 - Zostanie zastosowana wewnętrzna automatyczna pozycja (patrz właściwość AutoOffset), która wskazuje ostatnią odczytywaną lub zapisywaną wartość.
Operacja ta przesunie wewnętrzną automatyczną pozycję za odczytywaną/zapisywaną wartość.
Jeżeli pozycje są odczytywane/zapisywane po kolei za sobą, wtedy nie trzeba ręcznie określać pozycję, ale jest lepiej zastosować automatyczne pozycjonowanie.
oFind(Object) Wyszukiwany blok danych w formie obiektu PmBuffer, który zostanie zastąpiony blokiem danych oReplace.
oReplace(Object) Blok danych w formie obiektu PmBuffer, który zastąpi znaleziony blok danych oFind.
nCount[opcjonalne] (Long) Ilość wykonanych zamian, gdzie wartość -1 (domyślnie) oznacza zastąpienie wszystkich znalezionych bloków danych.
Wartość zwrotna:
Zwraca ilość wykonanych zamian.
Notatka:
Metoda ta na razie nie działa w Web panelach.
 
Uwaga! Jeżeli rozmiar oFind i oReplace jest różny, wtedy blok danych jest również powiększany/zmniejszany przy każdej zamianie.
Ta operacja przesuwa wewnętrzną pozycję automatyczną za ostatni bajt zastąpionego bloku danych.
Patrz również:
Przykład:
JavaScriptWybierz oraz skopiuj do schowka

var oBuf = Pm.CreatePmBuffer();
oBuf.SetUint8(-2, 0x10);   // Offset: 0
oBuf.SetUint8(-2, 0x20);   // Offset: 1
oBuf.SetUint8(-2, 0x30);   // Offset: 2
oBuf.SetUint8(-2, 0x40);   // Offset: 3
oBuf.SetUint8(-2, 0x10);   // Offset: 4
oBuf.SetUint8(-2, 0x20);   // Offset: 5
oBuf.SetUint8(-2, 0x30);   // Offset: 6
oBuf.SetUint8(-2, 0x40);   // Offset: 7
var oFind = Pm.CreatePmBuffer();
oFind.SetUint8(-2, 0x20);
oFind.SetUint8(-2, 0x30);
var oReplace = Pm.CreatePmBuffer();
oReplace.SetUint8(-2, 0xff);
var s0 = oBuf.GetHexaString(0);   // Wynikiem jest "1020304010203040"
var n = oBuf.FindReplaceBuffer(0, oFind, oReplace, -1);   // Wynikiem jest 2
var s1 = oBuf.GetHexaString(0);   // Wynikiem jest "10ff4010ff40"

Historia:
Pm9.00.25: Wytworzono
© MICROSYS, spol. s r.o.