Просто уточнение. Еще со времен DOS запись в файл нуля байт являлась признаком того, что файл обрезается по текущей позиции. По моему, в этом плане в Windows ничего не изменилось, хотя более корректно вызвать
SetEndOfFile(Handle)
TFileStream именно это и делает. Смотрим исходники:
procedure THandleStream.SetSize(NewSize: Longint);
begin
Seek(NewSize, soFromBeginning);
Win32Check(SetEndOfFile(FHandle));
end;
|