안녕하세요..
파일을 Open하여 DBGrid에 내용을 Insert하고....
파일을 수정,추가,삭제하여
다시 같은 파일이름으로 저장(overwrite)하려고 하는데..
에러가 납니다.
[소스]
//조회
procedure Readprocedure(FileName:String);
var sOpenFile: TextFile;
s: String;
Begin
IF OpenDialog.Execute then
Begin
AssignFile(sOpenFile, FileName);
Reset(sOpenFile);
Readln(sOpenFile, s);
{....
//DataSet에 Data Insert
}
CloseFile(sOpenFile);
End;
End;
//저장
procedure Writeprocedure(FileName:String);
var sSaveFile: TextFile;
s: String;
Begin
IF SaveDialog.Execute then
Begin
AssignFile(sSaveFile, FileName);
ReWrite(sSaveFile);
{....
//DataSet에 Data의 내용을 s에 저장
}
Writeln(sSaveFile, s);
CloseFile(sSaveFile);
End;
End;
//=============================
위의 내용에서 조회했던 파일명을 그대로 써서 저장하려고 할경우
ReWrite에서 i/o error 32가 납니다....
그래서 혹시 File이 Open되어 있는게 아닌가 해서...
아래처럼.. except처리에서 closeFile을 했는데...
Close파일에서는 i/o error 103(파일이 Open되지 않았슴.)이
나오는데....
어떻게 처리해야 할지...
조언을 부탁드립니다..
//==============================
Try
Rewrite(sSaveFile) ; //파일생성
Except
on EInOutError do //파일생성결과
Begin
CloseFile(sSaveFile);
Rewrite(sSaveFile); //파일생성
End;
End;