I/O Error 183

just started geting i/o error 183 to a program that has been working for years!. Using delphi 2.0 and DBF files; trying to perform a rewrite following and AssignFile to a textfile var on a unique filename. The file name has a full path defined to a directory that does exists on a drive that does exist. This occurs on the local drive (non-networked) on either a windows nt client or a windows 95 client. I can't find any docs on this......
asleszynskiAsked:
Who is Participating?
 
williams2Connect With a Mentor Commented:
I have experienced your problem before. I solved it by setting the generel FileMode variable like this:

Procedure WriteFile(FileName: String);
var
  F: File of text;
Begin
  AssignFile(F,FileName);

//Valid FileMode values are:
//0      Read only
//1      Write only
//2      Read/Write

  FileMode:= 2;
  Reset(F);
  Write(F,'Hello World');
  CloseFile(F);
End;

The big problem is, that Delphi got severel levels of filehandling, and mixing them, can make influence to previous written and (almost) perfect working code. :-)

Regards
Williams
0
 
asleszynskiAuthor Commented:
i/o error 183 really is "Directory already exists". Prior in my code I issued a {$I-} followed by a series of MkDir commands containing paths that Already exist. Since I forgot to perform IOResult following the MKDir, the error propageted into the next i/o call; or ReWrite. I/O Error 183 was actually occuring on the MkDir function call. A call to IOResult would have cleared it.....thanks to all.... alan
0
 
williams2Commented:
You paid a big for that one then, hope you can make use of my hints then selsewhere.

I didn't know that Error, I haven't had the problem before, but instead of using the {$I-} directive,  use the Try-Except block instead. You may be able to write more user.friendly code then.

Regards
Williams
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.