Update cookies preferences
Promotic

FindBuffer - metoda obiektu PmBuffer

Opis:
Zwraca pozycję pierwszego bajtu wystąpienia szukanego bloku danych w bloku danych.
Składnia:
Long FindBuffer(Long nOffset, Object oFind)
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.
Wartość zwrotna:
Zwraca pozycja pierwszego bajtu wystąpienia szukanego bloku danych w bloku danych (indeksowane od 0). Jeżeli nie znaleziono wtedy zwraca wartość -1.
Notatka:
Metoda ta na razie nie działa w Web panelach.
Ta operacja przesuwa wewnętrzną pozycję automatyczną za ostatni bajt znalezionego bloku danych.
Patrz również:
Przykład1:
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 s0 = oBuf.GetHexaString(0);   // Wynikiem jest "1020304010203040"
oBuf.AutoOffset = 0;
var iFind0 = oBuf.FindBuffer(-4, oFind);   // Wynikiem jest 1
var iFind1 = oBuf.FindBuffer(-4, oFind);   // Wynikiem jest 5
Przykład2:
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 s0 = oBuf.GetHexaString(0);   // Wynikiem jest "1020304010203040"
oBuf.AutoOffset = 0;
while (1)
{
var iFind = oBuf.FindBuffer(-4, oFind);
if (iFind < 0)
{
break;
}
Pm.Debug(iFind);   // Wynikiem jest 1 oraz 5
}

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