Function DE Version 5.00

@GetBufferInfo

System

Syntax

@GetBufferInfo(BUFFERHANDLE1;RETFNUSEDSIZE);
@GetBufferInfo(BUFFERHANDLE1;RETFNUSEDSIZE;RETFNALLOCSIZE);
@GetBufferInfo(BUFFERHANDLE1;RETFNUSEDSIZE;RETFNALLOCSIZE;RETFNCURRENTPOSITION);

Beschreibung

Gibt Informationen zu dem BINBUFFER mit dem BUFFERHANDLE BUFFERHANDLE1 zurück.
Als Rückgabewert wird der Buffer-Pointer zurückgegeben.
Der Buffer-Pointer ist tatsächlich ein physischer Pointer in den eigentlichen Speicherbereich!
Jegliche Nutzung kann unbeabsichtigte Konsequenzen haben!

FN RETFNUSEDSIZE:
Die aktuell genutzte Größe des Buffer.

FN RETFNALLOCSIZE:
Die allokierte Größe des Buffer.

FN RETFNCURRENTPOSITION:
Die aktuell Position für Schreiboperationen etc. in dem Buffer.


Beispiel: @GetBufferInfo(BUFFERHANDLE1;RETFNUSEDSIZE;RETFNALLOCSIZE;RETFNCURRENTPOSITION)

BinBuffer:=@CreateBuffer(100);
@WriteBuffer(BinBuffer;"Test Text \X0D\X0A");
RetPointerToBufferMemory:=@GetBufferInfo(BinBuffer;RetUsedSize;RetAllocSize;RetCurrentPosition);
@LogReport("RetPointerToBufferMemory:"+@Text(RetPointerToBufferMemory));
@LogReport("RetUsedSize:"+@Text(RetUsedSize));
@LogReport("RetAllocSize:"+@Text(RetAllocSize));
@LogReport("RetCurrentPosition:"+@Text(RetCurrentPosition));
@SetPosBuffer(BinBuffer;0;"S");
ReadBin:=@ReadBuffer(BinBuffer;"B";12);
@LogReport(ReadBin;11);
BinBuffer:=@DestroyBuffer(BinBuffer);

Erstellt einen BINBUFFER mit 100 Bytes und schreibt einen Text "Test Text " gefolgt von CR/LF in diesen BINBUFFER.
Es die Informationen zu dem BINBUFFER BinBuffer nach der Schreiboperation ausgelesen und im APILOG ausgegeben.
Die Position wird wieder auf 0 gesetzt und die ersten 12 Bytes als binäre Daten (Datentyp RT) aus diesem BINBUFFER gelesen.
Anschließend werden diese Daten im APILOG ausgegeben und der BINBUFFER wieder zerstört.

Beispieausgabe im APILOG:
RetPointerToBufferMemory:1581796089044
RetUsedSize:12
RetAllocSize:100
RetCurrentPosition:12
L:000C L:12
   0000 54 65 73 74 20 54 65 78 74 20 0D 0A Test.Text…