웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
일반팁
 


FileSystemObject 다루기 IV - 파일에 쓰기
  2006-04-08 16:18:49 댓글:(0)   조회:1013



<%
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = fs.OpenTextFile("c:MyTesttest.txt",8) 
%>
<HTML>
<BODY>
<br><center><font face="돋움" size="2">
<h2>FSO 텍스트화일에 쓰기</h2>
<% 
objFile.writeLine("이것은 글쓰기 테스트입니다.")
objFile.writeLine("이 글은 두번째 라인에 쓰여집니다.")
objFile.writeLine("이 글은 세번째 라인에 쓰여집니다.")
objFile.close
%>
글쓰기 완료!!
</font></center></BODY>
</HTML>

FileSystemObject 객체의 메소드중에 텍스트 파일을 다루는 데 사용하는 메소드로는 이미 공부한 CreteTextFile 이 있고, 또 하나는 이번 예제에서 사용한 OpenTextFile 이라는 메소드가 있습니다. 

CreateTextFile 메소드가 파일을 생성하고 그 파일을 억세스하는 기능을 가졌다면, OpenTextFile 메소드는 파일을 열고, 그 파일을 억세스하는 기능을 가지지요. 주로 이미 존재하고 있는 파일의 내용을 편집하거나 수정할 경우 이 메소드로 접근을 시도하는데 이 메소드로 특정파일을 읽어들이면 그 파일에 대한 TextStream 객체를 생성하게 됩니다. 그리고 그 객체를 가지고 우리가 지정한 파일을 제어할 수가 있게 되는거죠. 

소스를 보면서 다시 천천히 이해해보도록 하지요. 소스중에 첫 번째 라인인 FSO 객체의 인스턴스를 만드는 부분입니다. 중요한 것은 두 번째 라인이지요 

Set objFile = fs.OpenTextFile("c:MyTesttest.txt",8) 

OpenTextFile 메소드를 통해 우리는 이미 만들어진 test.txt 파일을 열고 있습니다. 이렇게 OpenTextFile 메소드를 사용하게 되면 그 리턴값으로 지정한 파일(test.txt)의 TextStream이 생기게 되고 우리는 그것을 objFile이라는 이름에 저장하게 되는 거지요. 

그럼으로 해서 이제 objFile이라는 이름으로 그 파일을 제어할 수가 있게 되는 것입니다. OpenTextFile 메소드는 4개의 인자를 가지는데 첫 번째 인자만이 필수입력이고 나머지 3개의 인자는 선택적입니다. 

첫 번째 인자로는 이용할 파일의 전체경로를 기입해야 하며, 

두 번째 인자는 이 지정된 파일을 열 때 읽기전용으로 읽을 것인지 읽고 쓰기가 가능한 모드로 열것인지를 정해주는 인자입니다. 기입을 안 해주면 디폴트 세팅으로 읽기전용이 됩니다. 이 값은 상수로 지정해 주게 되어있는데 "1"은 읽기전용(ForReading), "2"는 쓰기전용(ForWriting)이며, "8"은 읽고쓰기 가능(ForAppending)모드랍니다. 

우리는 이 파일에 글을 쓸 것이므로 8로 세팅을 했습지요. 그리고, 계속 이 페이지를 새로고침하면 test.txt 파일의 기존내용을 덮어쓰지 않고 텍스트가 계속 덧붙여지게 됩니다. 그게 Appending 니까요. ^^

세 번째 인자는 파일을 열 때 지정된 파일이 존재하지 않을 경우 새롭게 파일을 만들것이냐? 아니냐?를 구분하는 인자입니다. 만일 파일이 없을 경우 새로운 파일을 만들면서 Open하기를 원한다면 true를 주어야 하며 그렇지 않고 반드시 파일이 있어야만 한다면 false를 주면 되는 것이지요. 만일 여러분이 세 번째 인자를 false로 주고 존재하지 않는 파일을 Open한다면 다음과 같은 에러를 만나게 될 것입니다요   

error 'ASP 0177 : 800a0035' 
Server.CreateObject 실패 
/Fso_txtWrite.asp, line 3 00000000   

만일 세 번째 인자를 기입하지 않으면 디폴트 값은 true입니다. 

그리고 마지막인 4번째 인자는 파일의 포맷을 지정하는 인자인데 "-1" 이면 유니코드 포맷으로, "0"이면 ASCII 포맷으로 "-2"이면 System의 디폴트 format으로 열리게 됩니다. 적절한 인자들에 주어서 test.txt 파일을 오픈하고 그 파일의 TextStream을 objFile이라는 이름으로 얻어왔다면 이제 우리는 이 오픈된 파일에 여러 가지 작업을 할 수가 있게 된 것입니다. 

우리의 예제에서는 WriteLine 메소드를 통해서 글을 입력하고 있지요.   

objFile.writeLine("이것은 글쓰기 테스트입니다.") 
objFile.writeLine("이 글은 두번째 라인에 쓰여집니다.") 
objFile.writeLine("이 글은 세번째 라인에 쓰여집니다.") 
objFile.close

파일에서의 작업이 끝났다면 Close 메소드를 통해서 닫아주어야 합니다. 안 닫아준다고 어떤 에러가 나는 것은 아니지만... 서버가 파일을 계속해서 오픈하고 있을 수 있기에 만일의 경우 다른 사용자가 그 파일을 접근하지 못할 수도 있습니다. 주의하세요... Open 한 파일은 사용이 끝난 다음 반드시 Close 해주어야 한답니다.

결과를 보세요. 3줄의 글이 들어가 있지요? WriteLine 메소드는 지정된 문자를 텍스트파일에 Write하는 기능과 라인의 끝에다가 눈에 안 보이게 "엔터"값을 추가로 넣어주어 라인이 바꾸어지게끔 하는 기능을 가집니다. chr(13) & chr(10) 이란 값을 우리 눈에는 보이지 않게 라인의 끝에 추가하는 것이지요.



 댓글 (0)


일반팁
페이지: 1 / 2   


   oledb 접근 오류(홈마스타)(1) 18641
   ASP 에서 MDB 사용(홈마스타)873
     [RE] ASP 에서 MDB 사용(홈마스타)687
   Global.asa 파일에 대하여(홈마스타)(1) 749
   배열의 순차정리 - Asp에서 for 문을 돌려 얻(홈마스타)1111
     [RE] 배열의 순차정리(홈마스타)701
   Redirect 예제(홈마스타)763
   항목이 몇개인지 모르는 배열에 저장된 내용..출력하(홈마스타)808
   asp에서 자료삭제할때(홈마스타)654
   asp 로 파일 쓰기를 하려는데 계속 에러가 발생합(홈마스타)(2) 707
     [RE] asp 로 파일 쓰기를 하려는데 계속 에러(홈마스타)664
   asp include(홈마스타)869
   세자리마다 ‘,’ 콤마 찍기(홈마스타)(1) 914
     [RE] 소수점이하 자리 맞추기(홈마스타)811
   asp에서 소수점나온숫자를 버림하는 방법(홈마스타)6122
   배열을 이용한 변수 넘기기(홈마스타)(1) 655
   Cookies를 배열로(홈마스타)987
   Scripting.FilesyStemObject 스(홈마스타)942
     [RE] Scripting.FilesyStemObj(홈마스타)858
   FileSystemObject 다루기 V - 파일 (홈마스타)812
     [RE] FileSystemObject 다루기 V (홈마스타)774
FileSystemObject 다루기 IV - 파일(홈마스타)1014
     [RE] FileSystemObject - 입력한(홈마스타)757
   asp에서 select case 구문 사용법(홈마스타)1172
   변수의 선언과 전달(홈마스타)(5) 1220
   asp로 쇼핑몰 만들기(홈마스타)(1) 766
   쿠키 저장과 사용(홈마스타)824
   asp 여러줄 주석 어떻게 달아요 ?(홈마스타)1626
   ASP - DB 사용 예문 - ADO의 연결과 레코(홈마스타)792
     [RE] ASP - DB 사용 예문 - DB와 연결(홈마스타)1072
[1]  [2]  

복수단어 검색은 공백(space)로 구분해 주세요. 1




 
최근 글
[손님]

인기 글
[손님]