Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi AV nach CloseFile bei BlockRead/-Write (https://www.delphipraxis.net/49435-av-nach-closefile-bei-blockread-write.html)

Nogge 11. Jul 2005 13:42


AV nach CloseFile bei BlockRead/-Write
 
Hallo Community,
Ich habe hier folgenden Code:
Delphi-Quellcode:
var f,g:file; read,written,recsize,BufSize:Integer; Buffer:array of Byte;
begin
  recsize:=1;
  AssignFile(f,ExtractFilePath(Paramstr(0))+'Neu Textdokument.txt');
  {$I-}
  Reset(f,recsize);
  {$I+}
  if (IOResult = 0) then
  begin
    AssignFile(g,ExtractFilePath(Paramstr(0))+'Neu Textdokument2.txt');
    {$I-}
    ReWrite(g,recsize);
    {$I+}
    if (IOResult = 0) then
    begin
      BufSize:=SizeOf(Buffer);
      repeat
        BlockRead(f,Buffer,BufSize,read);
        Listbox1.Items.Add('Bytes read: '+inttostr(read));
        BlockWrite(g,Buffer,read,written);
        Listbox1.Items.Add('Bytes written: '+inttostr(written));
      until read < BufSize;
      CloseFile(g);
    end;
    CloseFile(f);
  end;
end;
Nach CloseFile(f) erhalte ich eine AV und ich weiß überhaupt nicht wieso. Könnte mir das einer von euch erklären?

marabu 11. Jul 2005 13:49

Re: AV nach CloseFile bei BlockRead/-Write
 
Entweder Buffer: [byte] of byte oder SetLength(Buffer, 256) irgendwo am Anfang sollte das Problem lösen...

Grüße vom marabu

Nogge 11. Jul 2005 13:53

Re: AV nach CloseFile bei BlockRead/-Write
 
kA wieso, aber SetLength klappt nicht (hatte ich auch vorher schon versucht). Jedoch funktioniert dein Buffer: [byte] of byte. Kann mir jemand noch sagen, wo darin der Unterschied liegt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 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-2025 by Thomas Breitkreuz