Einzelnen Beitrag anzeigen

Kamil

Registriert seit: 17. Aug 2002
178 Beiträge
 
#2

Re: Datei stückchenweise mit TFileStream einlesen

  Alt 4. Okt 2003, 00:43
In eine cardinal Variable passen nur 32 Bit...
Nimm ein Array:
Code:
var
  SrcBuffer, DestBuffer: array[0..1023] of byte;
begin
  while SrcStream.Position < SrcStream.Size do
  begin
    SrcStream.ReadBuffer(SrcBuffer[0], 1024);
    EncodeBuffer(SrcBuffer[0], DestBuffer[0], 1024);
    DestStream.WriteBuffer(DestBuffer[0], 1024);
  end;
Du kannst auch mit pointer arbeiten:
Code:
SrcBuffer, DestBuffer: pointer;
begin
  getmem(SrcBuffer, 1024);
  getmem(DeasBuffer, 1024);
  try
    while SrcStream.Position < SrcStream.Size do
    begin
      SrcStream.ReadBuffer(SrcBuffer^, 1024);
      EncodeBuffer(SrcBuffer^, DestBuffer^, 1024);
      DestStream.WriteBuffer(DestBuffer^, 1024);
    end;
  finally
    freemem(SrcBuffer);
    freemem(DestBuffer);
  end;
  Mit Zitat antworten Zitat