Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mit BlockRead() Datei kopieren (https://www.delphipraxis.net/99408-mit-blockread-datei-kopieren.html)

marabu 13. Sep 2007 20:24

Re: Mit BlockRead() Datei kopieren
 
Hi,

vermutlich testest du immernoch ohne Streams:

Delphi-Quellcode:
const
  BUF_SIZE = 1024;
var
  // ...
  bDlDat: array [1..BUF_SIZE] of Byte;
  bytes: Integer;
begin
  // ...
      if FileExists(tmpReplace) then
      begin
        // sizeDlDat := SizeOfFile(tmpReplace)-1; // unnötig
        AssignFile(hDlDat, tmpReplace);
        Reset(hDlDat, 1);
        repeat
          BlockRead(hDlDat, bDlDat, BUF_SIZE, bytes);
          if bytes > 0 then
            Socket.SendBuf(bDlDat, bytes);
          // Sleep(7);
          Application.ProcessMessages;
        until bytes = 0;
        CloseFile(hDlDat);
      end;
      tmpReplace := '';
  // ...
end;

sk0r 14. Sep 2007 14:09

Re: Mit BlockRead() Datei kopieren
 
Mal nebenbei, haben Streams einen Vorteil gegenüber den anderen Routinen?
Du benutzt gar kein Seek(). Das braucht man doch, um zu den nächsten Bytes zu springen?

marabu 14. Sep 2007 16:14

Re: Mit BlockRead() Datei kopieren
 
Vorteile ist vielleicht nicht das richtige Wort, aber lies selbst: klick

Aufeinender folgende Lesevorgänge lesen nur dann denselben Dateiabschnitt, wenn du dazwischen die Lesemarke verschiebst, denn bei jedem Lesevorgang wird die Lesemarke entsprechend weiter geschoben. Bei den Streams benutzt du übrigens statt Seek() die Eigenschaft Position.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.
Seite 2 von 2     12   

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