Module
Contents
Index 🔎︎

# Open Statement

開啟一個資料通道。

## 語法：

    Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]

## 參數：

檔案名稱：您要開啟的檔案名稱與路徑。如果您嘗試讀取的檔案不存在 (存取權限 = 讀取)，則會出現一則錯誤訊息。如果您嘗試寫入的檔案不存在 (存取權限 = 寫入)，則會建立新的檔案。

模式：指定檔案模式的關鍵字。有效值：Append (附加至循序檔案)、Binary (可以使用 Get 和 Put 依位元組存取的資料)、Input (開啟資料通道以進行讀取)、Output (開啟資料通道以進行寫入) 和 Random (編輯相對檔案)。

IOMode: 定義存取類型的關鍵字。有效值：Read (唯讀)、Write (只寫) 和 Read Write (讀寫)。

Protected：定義檔案開啟後之安全狀態的關鍵字。有效值：Shared (檔案可以由其他應用程式開啟)、Lock Read (檔案受防讀取保護)、Lock Write (檔案受防寫入保護)、Lock Read Write (拒絕對檔案進行存取)。

FileNumber：0 到 511 之間的任意整型表示式，指示可用資料通道的數目。然後，您可以透過資料通道傳送指令以存取檔案。檔案號碼必須由直接放在 Open 陳述式之前的 FreeFile 函式來確定。

DatasetLength： 對於隨機存取檔，設定條目長度。

您只能修改透過 Open 陳述式開啟的檔案之內容。如果您嘗試開啟一個已開啟的檔案，螢幕上會顯示一則錯誤訊息。

## 示例：

    Sub ExampleWorkWithAFile

    Dim iNumber As Integer

    Dim sLine As String

    Dim aFile As String

    Dim sMsg As String

        aFile = "c:\data.txt"

        iNumber = Freefile

        Open aFile For Output As #iNumber

        Print #iNumber, "This is a line of text"

        Print #iNumber, "This is another line of text"

        Close #iNumber

        iNumber = Freefile

        Open aFile For Input As iNumber

        While Not eof(iNumber)

            Line Input #iNumber, sLine

            If sLine <>"" Then

                sMsg = sMsg & sLine & chr(13)

            End If

        Wend

        Close #iNumber

        MsgBox sMsg

    End Sub