Nun gut, dann umgestellt um die
Exception von WriteBuffer() zu nutzen...
Delphi-Quellcode:
function DateiSchreiben(
const AFilename:
string;
const AFileSize: Int64): boolean;
const
coBlockSize = 16384;
var
lStream: TStream;
lFileData:
string;
lBytesToWrite: Int64;
lWriteCount: Int64;
begin
result := false;
// Erstmal den Stream öffnen. Wenn das nicht klappt, brauch ich kein Array...
lStream := TFileStream.Create(AFilename, fmCreate
or fmShareDenyWrite);
try
lFileData := StringOfChar(#55, coBlockSize);
lBytesToWrite := AFileSize;
while ( lBytesToWrite > 0 )
do
begin
lWriteCount := Min(lBytesToWrite, coBlockSize);
lStream.WriteBuffer(lFileData[1], lWriteCount);
Dec(lBytesToWrite, lWriteCount);
end;
result := true;
finally
lStream.free;
end;
end;
Ja, wieder im Beitragseditor geschrieben und ungetestet. Also keine Schläge, wenn wieder Kleinigkeiten falsch sind...