Zum Hauptinhalt springen

MemFindByte

obj -> MemFindByte(int1, int2, byte3) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Bytewert suchen

Details

  • obj: Deskriptor des Memory-Objekts
  • int1: Startposition
  • int2: Länge des zu durchsuchenden Bereichs
  • byte3: Suchwert
  • Resultat: int Position 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 kein byte -Wert übergeben.