Hi all,
some more information concerning this effect:
- the file to be appended to has not been opened by any other application
- sometimes the problem occurs at the very first write access to the file right after starting the application
- sometimes the problem occurs almost at every write access, sometimes five or even ten write accesses subsequently work.
Most interesting:
When I place the file on drive C: the problem does not occur.
The problem occurs only with the file residing on a network drive and might depend on network traffic.
Could it be a timing problem ?
Maybe OMS has a hint ?
Best regards,
Rainer
Am 27.05.2013 um 10:46 schrieb Treutwein Bernhard:
Hi,
as far as I remember, I encountered similar behavior occasionally.
I was able to provocate it, by opening the same file as read only
with another application.
Are there any processes running in the background of Windows 7?
E.g. some which are indexing the contents of files for quick
search or anything like that?
Regards
--
Bernhard
From: BlackBox [mailto:BLACKBOX{([at]})nowhere.xy
Sent: Thursday, May 23, 2013 5:35 PM
To: BLACKBOX{([at]})nowhere.xy
Subject: [BLACKBOX] File write error with Windows7
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
Received on Sat Jun 08 2013 - 14:07:35 UTC