VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "FileUtil" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option Explicit Private Const INVALID_FILENO As Integer = -1 ' 処理対象のファイル名を保持 Private m_Filename As String ' 処理中のファイル番号を保持 Private m_FileNo As Integer ' ' 初期化 ' Private Sub Class_Initialize() Call setFileNo(INVALID_FILENO) End Sub ' ' 終了処理 ' Private Sub Class_Terminate() Call closeFile End Sub ' ' ファイルが開かれているか ' ' @return 開かれていれば True ' Public Function isOpen() As Boolean isOpen = (getFileNo > 0) End Function ' ' ファイルを開く ' ' @param fileName ' @param mode ' @return 成功した場合True ' Public Function openFile(fileName As String, mode As FileMode) As Boolean On Error GoTo errHandler openFile = True Call setFilename(fileName) Call setFileNo(FreeFile) Select Case mode Case FileMode.InputMode Open getFilename For Input As getFileNo Case FileMode.OutputMode Open getFilename For Output As getFileNo Case FileMode.AppendMode Open getFilename For Append As getFileNo Case Else openFile = False End Select Exit Function errHandler: openFile = False End Function ' ' ファイルから1行読込む ' ' @param line 読み込んだ行を格納 ' @return データがこれ以上ない場合False ' Public Function readLine(ByRef line As String) As Boolean Dim ret As Boolean ret = Not isEOF() If ret Then Line Input #getFileNo(), line End If readLine = ret End Function ' ' ファイルがEOFに達しているか ' ' @return ファイルがEOFに達している場合True ' Public Function isEOF() As Boolean isEOF = EOF(getFileNo()) End Function ' ' 1行出力 ' ' @param str 出力内容 ' Public Sub println(str As String) Print #getFileNo(), str End Sub ' ' ファイルを閉じる ' Public Sub closeFile() Close getFileNo() End Sub ' ' ファイル名の設定 ' ' @param newFileName ' ' Private Sub setFilename(newFileName As String) m_Filename = newFileName End Sub ' ' ファイル名の取得 ' ' @param ファイル名 ' Public Function getFilename() As String getFilename = m_Filename End Function ' ' ファイルNoの設定 ' ' @param ファイルNo ' Private Sub setFileNo(newFileNo As Integer) m_FileNo = newFileNo End Sub ' ' ファイルNoの取得 ' ' @return ファイルNo ' Public Function getFileNo() As Integer getFileNo = m_FileNo End Function