Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[13079] Re:[질문] TextFile... 열려있는가 알아보는 방법
까막.윤창희 [ggamagui] 1822 읽음    2010-01-05 14:45
김완용 님이 쓰신 글 :
:
:             AssignFile(sFp, OpenDialog1.FileName);
:             Reset(sFp);
: 

: 이런 상태에서
: 다시 다른 파일을 열였을 때
: sFp로 지정한 파일이 이미 열려있으면 닫고 다시 열어야 하는데,
: 열려있는 파일인가 아닌가 알 수 없네요.
: 즉,
:
: 
: private
:     sFp : TextFile;
: .....
: procedure Form1.FormCreate(Sender: TObject);
: begin
:     sFp := nil;  // 파일이 열리지 않았음
: end;
: 
: procedure.....
: begin
:     if OpenDialog1.Execute then begin
:         if sFp <> nil then CloseFile(sFp); // 사용 중이던 파일은 닫아 준다.
:         AssignFile(sFp, OpenDialog1.FileName);
:         Reset(sFp);
:     end;
: end;
: 

:
: 그런데
: sFp := nil;
: 여기서부텀 에러가 납니다.
: 그러니 if sFp <> nil then CloseFile(sFp); 이것도 에러가 납니다.
: 파일이 열려있는 지 알 수 있는 방법이 없나요?
: 고수님들의 조언을 부탁 드려 봅니다.

안녕하세요. 까막입니다.

외부에서가 아닌 프로그램 안에서 열었나 하는 것을 판단하시는 것이죠?
FileOpen 으로 여시면서 열기 속성을 지정해 주시면 간단히 될것 같은데요.

procedure TForm1.Button3Click(Sender: TObject);
var
  FH : integer;
begin
  FH := FileOpen('c:\temp\a.txt',fmOpenWrite or fmShareExclusive);
  if FH > 0 then
    Edit1.Text := 'Success'
  else
    Edit1.Text := 'Error';
end;


위에서 fmShareExclusive 속성을 주시면 자기 혼자만이 열어서 사용하겠다는 의미가 됩니다.
자세한 내용은 도움말에서 FileOpen 과 File Open Mode 를 찾아보시면 나오고요.



혼이 살아 있을까.... 대한민국.

+ -

관련 글 리스트
13070 [질문] TextFile... 열려있는가 알아보는 방법 김완용 1516 2009/12/28
13079     Re:[질문] TextFile... 열려있는가 알아보는 방법 까막.윤창희 1822 2010/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.