[fpc-pascal] TFileStream.SetSize sometimes fails

Martin lazarus at mfriebe.de
Thu Aug 13 22:33:02 CEST 2009


Mattias Gaertner wrote:
> On Thu, 13 Aug 2009 21:46:23 +0200 (CEST)
> Michael Van Canneyt <michael at freepascal.org> wrote:
>   
>> On Thu, 13 Aug 2009, Mattias Gaertner wrote:
>>     
>>> I want to replace the content of an existing file (keeping the type
>>> and rights). I used:
>>>
>>> fs := TFileStream.Create(Filename, fmOpenWrite or fmShareDenyNone);
>>> fs.Size := 0;
>>> fs.Write(.....);
>>> fs.Free;
>>>
>>> But it does not always work. The line fs.Size does not clear the
>>> file on every file system. So the fs.Write only replaces the first
>>> part of the file.
>>>       
>> If it depends on the filesystem, then you should complain with the
>> linux kernel people ?
>>     
>
> I'm not sure if it is a kernel thing. I don't have a vbox to test.
> That's why I ask. Maybe someone knows more.
>
>   
Have a look here:
http://www.virtualbox.org/ticket/2257

It never was fixed, just no-one was able to reproduce for some time. 
However it was with an xp guest on an ubunto host => we have it the 
other way round



More information about the fpc-pascal mailing list