본문 바로가기

Window Programming/VB

파일처리 - 파일작업

FSO모델을 사용하여 순차텍스트파일을 만드는 방법에는 다음 3가지가 있다.

createTextFile

파일이름을 작성하고 파일을 읽거나 쓰는데 사용되는 createTextFile메서드를 사용하는 것이다.

object.createTextFile(파일명 [,파일작성 [,unicode작성]])

구성요소 설명
object fileSystemObject나 folder개체의 이름
파일명 작성한 파일을 나타내는 문자식
파일 작성 false(기본값)는 새로운 파일작성, true는 존재하는 파일에 겹쳐쓴다.
unicode false(기본값)는 ascii파일로 작성, true는 unicode로 작성한다.

Private Sub Form_Load()
    Dim fs As New FileSystemObject
    'Dim문 대신 set fs = createObject("scripting.fileSystemObject")도 가능
    Set a = fs.CreateTextFile("c:\text.txt", True)
End Sub

openTextFile

파일을 열거나 작성할 수 있는 openTextFile메서드를 사용하는 것이다.

object.openTextFile(파일명 [,입출력모드 [,파일작성 [,파일형태]]])

구성요소 설명
object fileSystemObject의 이름
파일명 열어 볼 파일을 나타내는 문자열
입출력모드 forReading(읽기전용), forWriting(겹쳐쓰기), forAppending(파일끝에 추가)
파일작성 false(기본값)은 기존파일, true이면 새 파일작성
파일형태 tristateUseDefault(기본값), tristateTrue(unicode로 파일개방), tristateFalse(ascii로 파일개방)

Private Sub Form_Load()
    Dim fs, f
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile("c:\test.txt", ForAppending, True, TristateFalse)
End Sub

openAsTextStream

지정된 파일을 열어 파일을 읽거나 쓰거나 또는 추가하는데 사용하는 File개체인 openAsTextStream메서드를 사용하는 것이다.

object.openAsTextStream([입출력모드, [파일형태]])

다음 예제코드는 createTextFile(fileSystemObject개체)로 파일을 작성하고 openAsTextStream(file개체)메서드를 사용하여 겹쳐쓰기를 하려는 준비코드이다.

Private Sub Form_Load()
    Dim fso As New FileSystemObject, file1 As File, ts As TextStream
    fso.CreateTextFile ("c:\test.txt")
    Set file1 = fso.GetFile("c:\test.txt")
    Set ts = file1.OpenAsTextStream(ForWriting)
End Sub

이러한 FSO모델은 순차적 텍스트파일만 작성할 수 있을 뿐, 임의파일이나 이진파일 만들기를 지원하지 않는다.