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. |
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"