2] 폼에 다음과 같은 메뉴를 생성한다.
caption : 파일
name : mnuFile
└ caption :
파일열기
└ name : mnuOpen
소스코드Private Sub mnuOpen_Click()
Dim fileName, linesFromFile,
nextLine As String
Dim fileNum As Integer
fileName =
"c:\my documents\sequence.txt"
fileNum = FreeFile 'freeFile함수로 사용할 수
있는 파일번호를 구함
Open fileName For Input As fileNum
Do
Until EOF(fileNum) 'EOF함수로 파일의 끝을 알 수 있다.
Line Input #fileNum,
nextLine '한번에 한행씩 텍스트파일의 내용을 읽는다.
linesFromFile = linesFromFile +
nextLine + Chr(13) + Chr(10)
Loop
Close fileNum
Debug.Print linesFromFile '직접실행창에 출력된다.
End Sub
#파일열기와 닫기
순차처리를 위해 파일을 열 때는 다음과 같은 open구문이 사용된다.
|형식| Open
pathname For [input | output | append] as filenumber [Len=buffersize]
-
pathname :: 열고자하는 경로명과 파일명을 적어준다.
- [input | output | append] :: 순차파일을 열 때 쓰는
모드로, 이중에서 한 모드를 써야한다.
└ input(파일읽기 전용모드) :: input으로 순차파일을 열면 해당파일의 텍스트를 읽기만
할 수 있다. 이때 파일은 존재하고 있어야 한다. 그렇지 않으면 오류가 발생한다.
└ output(파일쓰기 전용모드) ::
output으로 순차파일을 열면, 해당파일에 텍스트를 쓰기만 할 수 있다. 이 때 디스크상에 파일이 없다면 open문은 자동적으로 파일을
생성해놓고 나서 파일을 연다. 그러나, 디스크상에 파일이 존재한다면 해당파일의 내용은 모두 사라지게 된다.
└ append(파일
덧붙이기모드) :: append로 순차파일을 열면, 해당파일의 끝에 텍스트를 덧붙일 수 있다. 이 때 디스크상에 파일이 없다면,
output모드와 마찬가지로 파일을 생성한 다음에 파일을 열게 된다. 그러나 output모드와는 달리, 이미 디스크상에 파일이 있어도 해당파일의
내용은 그대로 보존된다.
- filenumber :: 파일에 접근하는데 사용되는 정수로서, 다른 파일에서 사용되지 않는 고유한 숫자로 적어
넣어준다. 사용할 수 있는 파일번호를 구하려면 freeFile함수를 사용하면 된다. freeFile함수는 Open 문에 사용할 수 있는 다음
파일 번호를 나타내는 Integer값을 반환한다.
- bufferSize :: 파일과 사용자 프로그램간에 데이터를 복사할 때 버퍼의
문자수를 지정한다. 일반적으로 순차파일에서는 사용하지 않는다.
#input #문
파일에 작성된 문자열 표현식과 숫자의 목록을 읽는 input #문을 사용할 수 있다. 이 문은 주로 랜덤파일이나
이진파일에 사용된다. 예를 들면, 다음과 같이 input문을 사용하여 우편물 목록파일을 라인으로 읽을 수 있다.
|형식| input
#fileNum, name, street, city, state, zip
vnote