Hm. OK. Aber so:
Delphi-Quellcode:
function SplitFile(Filename, DestFolder: string; SplitSize, CntParts: Int64): Integer;
const
BLOCKSIZE = 4194304;
//BLOCKSIZE = 32767;
resourcestring
ChangeDiskMsg = 'Legen sie die nächste Diskette in Laufwerk a: ein.';
var
hFile : THandle;
SizeOfFile : Int64; // >4GB
hPart : THandle;
Loop : Cardinal;
Partname : string;
MemBuffer : array of Byte;
// MemBuffer : array[0..BLOCKSIZE - 1] of Byte;
BytesToRead, BytesRead, BytesWritten: Int64;
TotalBytesRead, OverallBytesRead: Int64;
ProgressCurrent, ProgressOld: Cardinal;
begin
SetLength(MemBuffer, BLOCKSIZE - 1);
Schreibt er zwar sehr schnell aber in sehr kleinen
Happen (Titelleiste flimmert, weil sie ständig aktualisiert wird). Und ist im Endeffekt auch nicht schneller.
Edit:
Er schreibt gar nicht, weil BytesRead immer -1 ist. Auch wenn ich hier dann schreibe:
BytesRead := FileRead(hFile, MemBuffer, Min(length(MemBuffer), BytesToRead));