MemFindByte
obj -> MemFindByte(int1, int2, byte3) : int
Bytewert suchen
Details
- obj: Deskriptor des Memory-Objekts
- int1: Startposition
- int2: Länge des zu durchsuchenden Bereichs
- byte3: Suchwert
- Resultat:
intPosition des gesuchten Wertes - Siehe: Verwandte Befehle ,
MemFindStr ()
Der Befehl sucht im Speicherbereich des Memory -Objekts (obj) ab der Startposition (int1) in einem Abschnitt von (int2) Bytes nach dem ersten Vorkommen des Byte-Werts (byte3). Das Resultat ist 0, wenn der Bytewert in diesem Abschnitt nicht vorkommt, ansonsten wird die Position des gefundenen Bytes zurückgeliefert.
Soll das gesamte Objekt nach einem Bytewert durchsucht werden, kann in (int2) die Datenmenge des Memory -Objekts (siehe Eigenschaft Len) angegeben werden. Soll zu Beginn des Objekts einige Bytes übersprungen werden, müssen diese von der Anzahl der zu durchsuchenden Bytes abgezogen werden.
Beispiel:
// Suche ab Anfang des Objekts
tStartByte # 1;
tSearchBytes # tMemory->spLen;
tRes # tMemory->MemFindByte(tStartByte, tSearchBytes, 13);
// Die ersten 1024 Bytes überspringen
tStartByte # 1025;
tSearchBytes # tMemory->spLen - tStartByte + 1;
tRes # tMemory->MemFindByte(tStartByte, tSearchBytes, 13);
Folgendes Beispiel ermittelt die Anzahl der Zeilenwechsel in einem Memory -Objekt:
for tPos # tMemory->MemFindByte(1, tMemory->spLen, 10);
loop tPos # tMemory->MemFindByte(tPos + 1, tMemory->spLen - tPos, 10);
while (tPos > 0)
{
Inc(tHits);
}
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der in (obj) übergebene Deskriptor ist ungültig._ErrValueRange: Die angebene Startposition (int1) oder zu durchsuchende Bereich (int2) sind außerhalb des zulässigen Bereichs oder in (byte3) wurde keinbyte-Wert übergeben.