nOffset | (Long) Určuje pozici čtené hodnoty v datovém bloku.
Platí, že celá čtená hodnota musí ležet uvnitř datového bloku. Položka se vyčte buď celá nebo vůbec. >= 0 - Index (v bajtech, indexováno od 0) v datovém bloku.
-4 - Použije se vnitřní automatická pozice (viz vlastnost AutoOffset), která ukazuje za poslední čtenou nebo zapisovanou hodnotu.
Tato operace posune vnitřní automatickou pozici za čtenou/zapisovanou hodnotu. Pokud se položky čtou/zapisují jedna za druhou, pak není potřeba ručně určovat pozici, ale je lepší použít toto automatické pozicování. |
---|---|
oFind | (Object) Hledaný datový blok v podobě objektu PmBuffer, který bude nahrazen datovým blokem oReplace. |
oReplace | (Object) Datový blok v podobě objektu PmBuffer, který nahradí nalezený datový blok oFind. |
nCount | [nepovinné] (Long) Počet provedených nahrazení, kde hodnota -1 (default) znamená nahradit všechny nalezené datové bloky. |
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);
// Výsledkem bude "1020304010203040"
var n = oBuf.FindReplaceBuffer(0, oFind, oReplace, -1);
// Výsledkem bude 2
var s1 = oBuf.GetHexaString(0);
// Výsledkem bude "10ff4010ff40"