FreeFIle(): Open의 #FileNumber에서 쓸수있는, 값 중 가장 작은 값을 반환하는 함수.
사용의 예.
Dim FileNum As Integer
FileNum = FreeFile
Open "C:\MyTxt.Txt" For Output As #FileNum
Print #FileNum, "파일 쓰기 테스트입니다."
Close #FileNum
위와 같이 활용할 수 있습니다.
또, 우리는 이 함수와 똑같은 함수를 만들 수 있습니다.
FileNumber는 1~512의 범위이고, 파일 처리 함수에서 잘못된 번호가 들어오면 오류를 반환하므로..
Function MyFreeFile() As Integer
On Local Error Resume Next
Dim i As Integer
For i = 1 To 512
Loc i ' LOC() 함수는 파일 번호에 대한 현재 위치를 숫자로 반환하는 함수
If Err = 52 Then
Err.Clear
MyFreeFile = i
Exit Function
Else
If Err Then Err.Clear
End If
Next
End Function
위와 같이 작성할 수 있을것입니다.
P.S: 그렇다면 열린 파일 핸들을 모두 닫고싶을 땐 어떻게 해야할까요?
Reset 이라는 함수를 쓰면됩니다. VB는 열려진 파일 번호을 관리하기 때문에 가능한것이지요.
(C/C++였으면 파일 핸들을 구하기 위해 ZwQuerySystemInformation 노가다를 했을듯..)
그렇다면 이 Reset도 구현할 수 있을까요?
네. 가능합니다. :)
Sub MyReset()
On Local Error Resume Next
Dim i As Integer
For i = 1 To 512
Close #i
Next
If Err Then Err.Clear
End Sub
작성자 : 수학쟁이(NAVER)