![]() |
Geeigneter Variablentyp für dynamischen Buffer
Hallo,
ich versuche jetzt schon 3 Tage vergeblich eine geeignet Variable für einen dynamischen Buffer zu finden. Ich brauche einen Buffer, der praktisch unendlich groß werden kann (eine Anwendung: Bytewarteschlange zum Schreiben in Datei), der aber bei seiner Standardgröße (4 KB) auch eben nur 4 KB (meinetwegen auch 5) belegt. Bisher habe ich versucht das zu verwenden:
Delphi-Quellcode:
darauf war aber nach einer blockread-Anwendung kein Zugriff mehr (EAccessError, ich denke, weil das Längebyte überschrieben wurde).
tbytebuffer=array of byte;
//zur Weitergabe als Funktionsparameter pbytebuffer=^tbytebuffer; Es funktioniert zwar, wenn ich die blockread-Anweisung nicht so
Delphi-Quellcode:
sondern so
blockread(f,buf,4096,res)
Delphi-Quellcode:
aufrufe, aber dann habe ich auf einmal keinen Zugriff mehr auf einen Stringfunktionsparameter :gruebel: :wall:
blockread(f,pointer(integer(@buf)+4)^,4096,res)
was würdet ihr mir als Buffertyp empfehlen? |
Re: Geeigneter Variablentyp für dynamischen Buffer
Array of Byte ist schon OK, aber du weißt vielleicht nicht, dass ein dynamisches Array, welches du hier deklarierst, bereits einen Zeiegr auf die tatsächlichen Daten darstellt. Ein Zeiger auf das Array ist also in der TAt ein Zeiger auf einen Zeiger.
|
Re: Geeigneter Variablentyp für dynamischen Buffer
Wars nicht
Delphi-Quellcode:
? Beziehungsweise, bei direktem Verwenden, einfach buf[0]?
pbuf := @tbuf[0];
|
Re: Geeigneter Variablentyp für dynamischen Buffer
Danke :)
ich probiers mal aus: im blockread auf buf[0] verweisen und pbuf = tbuf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz