Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Buffer erst ab bestimmter stelle beschreiben (https://www.delphipraxis.net/40436-buffer-erst-ab-bestimmter-stelle-beschreiben.html)

gekmihesg 15. Feb 2005 20:37


Buffer erst ab bestimmter stelle beschreiben
 
hallo

ich möchte etwas aus einem stream in einen buffer lesen und zwar so das die ersten bytes (in dem fall 8 ) nicht überschrieben werden.
also ungefähr so:

Delphi-Quellcode:
var
  Buff: Pointer;
  Stream: TMemoryStream;
begin
  GetMem(Buff, 1024 + 8);
  Stream := TMemoryStream.Create;
  try
    FuelleBytes(Buff, 8);
    Stream.ReadBuffer(Buff^, 1024); // und hier soll eben erst ab dem 8. byte gefüllt werden
//...
wie stell ich sowas an?

Luckie 15. Feb 2005 20:38

Re: Buffer erst ab bestimmter stelle beschreiben
 
Dann überspring doch die ersten 8 Bytes, in dem du den Dateizeiger mit Delphi-Referenz durchsuchenPosition setzt.

gekmihesg 15. Feb 2005 20:41

Re: Buffer erst ab bestimmter stelle beschreiben
 
hmmm ich vermute mal du verstehst da was falsch...
das ganze hat nichts mit der datei zu tun sondern nur mit dem buffer. im buffer sollen die ersten 8 bytes so bleiben wie sie sind und der rest soll aus dem filestream gelesen werden.

alcaeus 15. Feb 2005 20:41

Re: Buffer erst ab bestimmter stelle beschreiben
 
Hallo gekmihesg,

d.h. du willst du den gesamten Inhalt des Streams in den Buffer kopieren, dabei aber 8 Bytes freilassen? Wie waers wenn du zuerst den Streaminhalt rauskopierst und anschliessend um 8 Bytes nach hinten schiebst?

Greetz
alcaeus

gekmihesg 15. Feb 2005 20:43

Re: Buffer erst ab bestimmter stelle beschreiben
 
klingt ein bischen umständlich. ich hatte gehofft das irgendwie so machen zu können:

Delphi-Quellcode:
var
  Buff: Pointer;
  Stream: TMemoryStream;
begin
  GetMem(Buff, 1024 + 8);
  Stream := TMemoryStream.Create;
  try
    FuelleBytes(Buff, 8);
    Stream.ReadBuffer(Buff[8]^, 1024);

Oxmyx 15. Feb 2005 21:00

Re: Buffer erst ab bestimmter stelle beschreiben
 
Delphi-Quellcode:
var
  Buff: Pointer;
  tempBuf: Pointre;
  Stream: TMemoryStream;
begin
  GetMem(Buff, 1024 + 8);
  tempBuf := Buff;
  ZeroMemory(Buff, 1024 + 8);
  Stream := TMemoryStream.Create;
  Inc(PByte(tempBuf), 8);
  Stream.ReadBuffer(tempBuf^, 1024);

gekmihesg 15. Feb 2005 21:38

Re: Buffer erst ab bestimmter stelle beschreiben
 
danke das scheint zu funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz