웹프로그래밍

Global It Leader!!


MySql


 
 

OpenTextFile 함수를 이용한 메모장 만들기 예제

페이지 정보

작성자 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 4,729회 작성일 12-08-16 18:38

본문

title.gif

appendix-A.gif

 

Open문으로 파일을 열고, Print, Write, Put문으로 출력하고, Input, Line input, Get문으로 입력하고, Close문으로 파일을 닫는 것은 전통적인 BASIC문법이다. 한편 비주얼베이직에서는 File개체를 이용하여 파일을 다룰 수 있는 다른 방법도 제공하고 있다. 지금부터 File개체를 이용하여 텍스트 파일을 다루는 방법에 대해 알아보자.

a1_bigyo.gif

구분

기존의 방법

File개체를 이용하는 방법

파일 열기

Open 파일이름 For 모드 As 파일번호

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile(파일이름, 모드)

파일 쓰기

Print #파일번호, 내용

Write #파일번호, 내용

Put #파일번호, 내용

f.Write 내용

f.WriteLine 내용

f.WriteBlankLines(숫자)

파일 읽기

Input #파일번호, 변수목록

Line Input #파일번호, 변수목록

Get #파일번호, 변수목록

변수 = f.Read(숫자)

변수 = f.ReadLine

변수 = f.ReadALL

파일 닫기

Close #파일번호

f.Close

createobject_title.gif

파일을 열기위해서는 먼저 다음과 같이 파일시스템 개체를 만들어야 합니다. 이 때 파일시스템개체명(fs)은 Varient형 변수를 사용합니다.

Set fs = CreateObject("Scripting.FileSystemObject")

보다 자세한 내용은 「Visual Basic 온라인 설명서」의 색인에서 'FileSystemObject 개체'라고 입력해서 검색해 보세요.

opentextfile_title.gif

이 프로젝트는 텍스트 파일을 다루고 있기 때문에 'OpenTextFile' 메소드를 이용해서 파일을 엽니다.

OpenTextFile메소드는 지정된 파일을 열어 파일을 읽거나 추가하는데 사용되는 TextStream 개체를 반환합니다. TextStream개체명(f)은 Varient형 변수를 사용합니다.

Set f = fs.OpenTextFile(파일이름, [입출력모드], [새파일작성여부], [형식])

구성 요소

설명

파일이름

필수. 열어 볼 파일을 식별하는 문자식 즉, 파일 경로를 포함하는 파일 이름 입니다.

입출력모드

선택. 입력/출력 모드를 나타냅니다. 다음 상수 중 하나가 될 수 있습니다.

  • ForReading = 1     읽기 모드
  • ForWriting = 2      쓰기 모드
  • ForAppending = 3    추가 모드

새 파일 작성 여부

선택. 지정된 파일이름이 존재하지 않을 경우 새 파일의 작성 여부를 나타내는 Boolean 값입니다. 값이 True이면 새 파일을 작성하고 그렇지 않다면 False입니다.

기본값은 False입니다.

형식

선택. 세가지 Tristate 값 중의 하나가 열린 파일의 형식을 나타내는데 사용됩니다. 생략되면 파일은 ASCII 형식으로 열립니다.

  • TristateUseDefault = -2         시스템 기본값으로 파일 열기
  • TristateTrue = -1                   Unicode로 파일 열기
  • TristateFalse = 0                   ASCII로 파일 열기

보다 자세한 내용은 「Visual Basic 온라인 설명서」의 색인에서 'FileSystemObject 개체' 라고 입력해서 검색해 보세요.

textstream_read_title.gif

TextStream개체에서 파일을 읽는 방법에 대해 하나씩 살펴보도록 하자.

우선 파일을 읽는 메소드는 Read, ReadLine, ReadAll 이 있다.

Read(숫자) 메소드

TextStream 파일에서 지정된 개수만큼의 문자를 읽고 그 문자열을 반환한다. 다음 예는 텍스트파일(c:\testfile.txt)에서 파일의 처음부터 끝까지 한 글자씩 읽어들이는 코드다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 1, False)         ' 읽기 모드로 파일 열기

Do While Not f.AtEndOfStream                              ' TextStream 파일의 끝이 아닌 동안

   반환문자 = f.Read(1)                    '한 글자를 읽어 반환 문자에 저장

   문장 = 문장 & 반환문자

Loop

f.close

파일의 끝을 의미하는 속성이 AtEndOfStream 이다. 참고로 줄의 끝을 의미하는 속성은 AtEndOfLine 이다. 이 두 속성은 True 또는 False를 반환한다.

ReadLine 메소드

TextStream 파일에서 개행 문자(줄 바꿈 문자; 엔터)까지의(포함하지는 않고) 전체 줄을 읽고 그 문자열을 반환한다. Line Input # 문과 같다고 보면 된다. 이 메소드는 개행 문자는 리턴하지 않는다는 점을 주의해야 한다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 1, False)         ' 읽기 모드로 파일 열기

Do While Not f.AtEndOfStream                              ' TextStream 파일의 끝이 아닌 동안

   반환문장 = f.ReadLine                   '한 줄을 읽어 반환 문장에 저장

   문장 = 문장 & f.Line & " : " & 반환문장 & VbCrLf

Loop

f.close

위 예제는 한 줄씩 읽어서 각 줄의 앞에 행번호를 삽입하여 출력하는 프로그램이다. 행 번호는 Line 속성을 통해 알 수 있다.

ReadALL 메소드

전체 TextStream 파일을 읽어 전체 문자열을 반환한다. Input()함수를 사용해서 파일을 읽는 방법과 유사하다고 볼 수 있다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 1, False)         ' 읽기 모드로 파일 열기

전체내용 = f.ReadAll               '전체 파일일 읽어 전체내용에 저장

f.close

textstream_write_title.gif

TextStream개체에서 파일을 쓰는 방법에 대해 하나씩 살펴보도록 하자.

우선 파일을 쓰는 메소드는 Write, WriteLine, WriteBlankLine 이 있다.

Write 메소드

지정된 문자열들을 각 문자열 사이에 어떤 공간이나 문자 없이 TextStream 파일에 쓴다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 2, False)         ' 쓰기 모드로 파일 열기

f.Write 저장문자열

f.close

WriteLine 메소드

지정한 문자열과 개행 문자를 TextStream 파일에 쓴다. Write와 다른 점은 파일에 쓸 때 개행문자(엔터)가 추가된다는 점이 다르다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 2, False)         ' 쓰기 모드로 파일 열기

f.WriteLine 저장문장

Loop

f.close

WriteBlankLines(숫자) 메소드

TextStream 파일에 개행 문자(엔터)를 지정한 수만큼 쓴다.

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("c:\testfile.txt", 1, False)         ' 읽기 모드로 파일 열기

f.WriteLines(5)               '5개의 빈줄을 쓴다.

f.close

filesystem_close.gif

열려 있는 TextStream 파일은 사용이 끝난 후 반드시 닫아야 합니다. TextStream개체명에 Close메소드를 사용하면 파일이 닫힙니다.

TextStream개체명.Close

file_save_title.gif

Sub SaveTextFile()

  Const ForReading = 1          ' 읽기 모드

  Const ForWriting = 2          ' 쓰기 모드

  Const ForAppending = 3        ' 추가 모드

   

   Const TristateUseDefault = -2        ' 시스템 기본값으로 파일 열기

   Const TristateTrue = -1                  ' Unicode로 파일 열기

   Const TristateFalse = 0                   ' ASCII로 파일 열기

 

  Dim fs                     ' 파일시스템 개체

  Dim f                      ' TextStream 개체

  Dim 파일이름

 

  On Error GOTO 에러핸들러

   CommonDialog1.ShowSave

   파일이름 = CommonDialog1.FileName

 

  Set fs = CreateObject("Scripting.FileSystemObject")

  Set f = fs.OpenTextFile(파일이름, ForWriting, True, TristateFalse)

 

  f.Write Text1.Text

  f.Close

 

에러핸들러:

End Sub

file_read_title.gif

Sub ReadTextFile()

  Const ForReading = 1          ' 읽기 모드

  Const ForWriting = 2          ' 쓰기 모드

  Const ForAppending = 3        ' 추가 모드

   

   Const TristateUseDefault = -2        ' 시스템 기본값으로 파일 열기

   Const TristateTrue = -1                  ' Unicode로 파일 열기

   Const TristateFalse = 0                   ' ASCII로 파일 열기

 

  Dim fs                     ' 파일시스템 개체

  Dim f                      ' TextStream 개체

  Dim 파일이름

 

  On Error GOTO 에러핸들러

   CommonDialog1.ShowOpen

   파일이름 = CommonDialog1.FileName

 

  Set fs = CreateObject("Scripting.FileSystemObject")

  Set f = fs.OpenTextFile(파일이름, ForReading, False, TristateFalse)

 

  Text1.Text = f.ReadALL

  f.Close

 

에러핸들러:

End Sub

textstream_etc_method_property_title.gif

Skip(숫자) 메소드
TextStream 파일을 읽을 때 지정된 문자 수만큼 건너 뛴다.
SkipLine 메소드
TextStream 파일을 읽을 때 다음 줄을 건너 뛴다.
AtEndOfLine 속성
TextStream 의 줄 끝일 때 True, 아니면 False
AtEndOfStream 속성
TextStream 파일의 끝일 때 True, 아니면 False
Line 속성
TextStream 파일에서 현재 행 번호를 반환하는 읽기 전용 속성
파일이 처음으로 열리고 나서 아무 것도 기록되기 전에 Line속성 값은 1
Column 속성
TextStream 파일에서 현재 문자 위치의 열 번호를 반환하는 읽기 전용 속성
개행 문자(줄 바꿈, 엔터)가 기록되고 난 후 다른 문자가 기록되기 전에 Column속성 값은 1

이 외에도 FileSystemObject 개체에는 파일 복사, 삭제, 생성과 폴더 복사, 삭제, 생성 등등과 같이 파일을 다루는 여러 가지 유용한 메소드들이 많이 있으므로 「Visual Basic 온라인 설명서」를 참고하여 공부하기 바란다.

돌아가기

 


작성자 : 홍준기 ( 전자우편 )
작성일 : 08/16/2012 18:34:48

visitcount.php3?ID=hjunki

댓글목록

등록된 댓글이 없습니다.

전체 57
게시물 검색
MySql 목록
번호 제목 글쓴이 조회 날짜
37 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4066 12-31
36 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4207 12-18
35 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4003 12-18
34 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3768 12-18
33 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3749 11-10
32 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3903 07-29
31 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4062 06-20
30 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4457 03-28
29 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4405 08-17
열람중 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4730 08-16
27 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4402 08-16
26 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9917 05-07
25 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4085 08-10
24 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5187 08-03
23 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4171 08-03
22 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4830 07-30
21 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4052 07-27
20 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4103 03-10
19 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4492 03-05
18 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4157 03-05