I have experienced the same problem when working with a file while connected to my local network, and some other program on the net open that file.
Regards: René Dorta.
On Thu, May 23, 2013 at 11:04 AM, Rainer Neubauer <neubauer.rainer{([at]})nowhere.xy
Hi all,
I have a strange effect when saving a modified source file:
An alert box titled “File Error” shows up containing the message
<file> could not be replaced because it is in use
When I press the button in the box to repeat the action, the file is saved without any problem.
This effect never showed up on Windows XP systems but happens many times on Windows7.
It is annoying when editing source files but is actually a BIG problem to me because in my current application (Windows XP up to now; one run taking several hours) I write some status files periodically. On Windows7 this effect would cause my application to stop several times every minute and wait for somebody to click a button.
It does not show up when the file to be saved contains just a few dozens of lines.
It does not show up too when I write an empty file but showes up when I have appended a line to an existing file and save the file.
This is a sketch of my code causing this problem:
PROCEDURE WriteToFile (VAR path, name, string: ARRAY OF CHAR);
(* file must exist and must be a text file *)
VAR
formatter: TextMappers.Formatter;
locator: Files.Locator;
model: TextModels.Model;
view: Views.View;
BEGIN
locator := Files.dir.This (path);
view := Views.OldView (locator, name);
(* omitted code for checking "locator.res = 0" and "view IS TextViews.View" *)
model := view (TextViews.View).ThisModel (); (* get the model of the view *)
formatter.ConnectTo (model); (* connect a formatter to the text *)
formatter.SetPos (model.Length ()); (* set position to end of text *)
formatter.WriteString (string)
formatter.WriteLn;
Views.RegisterView (view, locator, name)
END WriteToFile;
Writing an empty file works without any problems:
PROCEDURE StatusFileWrite (VAR path, name: ARRAY OF CHAR);
VAR
formatter: TextMappers.Formatter;
locator: Files.Locator;
model: TextModels.Model;
view: TextViews.View;
BEGIN
locator := Files.dir.This (path);
(* omitted code for checking "locator.res # 0" *)
model := TextModels.dir.New (); (* create a new, empty text object *)
view := TextViews.dir.New (model); (* create a new text view for model *)
formatter.ConnectTo (model); (* connect a formatter to the text *)
formatter.SetPos (0); (* set write position to beginning of file *)
WriteFile (formatter); (* now write file contents *)
Views.RegisterView (view, locator, name);
END StatusFileWrite;
Does anybody have an idea how to solve this problem ?
Thanks in advance and best regards,
Rainer
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
Received on Sat May 25 2013 - 15:36:40 UTC