Einzelnen Beitrag anzeigen

devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: BlockRead/Write: Buffergröße = Schnelligkeit?

  Alt 26. Mär 2008, 16:01
TFileStream wäre der geeigntee Datentyp, mit dem man unter heutigen 32-Bit Umgebungen effizient Dateien kopiert. Die BlockWrite/BlockRead-Funktionen sind noch ein Relikt aus TurboPascal/BorlandPascal-Zeiten und quasi obsolete (sie werden also nur noch aus Kompatibilitätsgründen unterstützt).

So könnte ein entsprechender Quellcode inkl. Fehlermanagement aussehen:

Delphi-Quellcode:
VAR SourceFile : TFileStream;
    TargetFile : TFileStream;
BEGIN
  SourceFile:=TFileStream.Create('QUELLDATEI.TXT', fmOpenRead);
  TRY
    TRY
      TargetFile:=TFileStream.Create('ZIELDATEI.TXT', fmCreate OR fmShareDenyRead);
      TRY
        TargetFile.CopyFrom(SourceFile, SourceFile.Size);
      FINALLY
        FreeAndNil(TargetFile);
      END;
    FINALLY
      FreeAndNil(SourceFile);
    END;
  EXCEPT
    ShowMessage('Fehler aufgetreten.');
  END;
END;
Devid
  Mit Zitat antworten Zitat