Dave Coventry wrote: ... > FS:=TFileStream.Create(fname, fmshareDenyWrite); ... > I am trying to read a block of 4 bytes, increment it by one and write > it back again. > > However, if fails on the write.
Please read carefully what have you written: FS := TFileStream.Create(fname, fmShareDenyWrite); you passed only fmShareDenyWrite but you have not told to the file stream that you want to write :) There are few modes in which you can open your stream: fmCreate = $FFFF; fmOpenRead = 0; fmOpenWrite = 1; fmOpenReadWrite = 2; You had not passed any of them => you passed 0 = fmOpenRead. As result you can only read. If you want to read and write then pass fmOpenReadWrite as mode: FS := TFileStream.Create(fname, fmOpenReadWrite or fmShareDenyWrite); Best regards, Paul Ishenin. _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus