Module
Contents
Index 🔎︎

# Open Statement

Mở một kênh dữ liệu.

## Cú pháp:

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

## Tham số :

FileName: tên và đường dẫn của tập tin bạn muốn mở. Nếu bạn thử đọc một tập tin không tồn tại (Access=Read), một thông điệp lỗi sẽ xuất hiện. Nếu bạn thử ghi vào một tập tin không tồn tại (Access=Write), một tập tin mới được tạo.

Mode: từ khoá mà ghi rõ chế độ tập tin. Giá trị hợp lệ: Append (phụ thêm vào tập tin dãy), Binary (nhị phân: dữ liệu có thể được truy cập theo byte dùng Get và Put), Input (nhập vào : mở một kênh để đọc), Output (xuất ra: mở một kênh dữ liệu để ghi) và Random (ngẫu nhiên: chỉnh sửa các tập tin tương đối).

IOMode: từ khoá mà xác định kiểu truy cập. Giá trị hợp lệ: Read (chỉ đọc), Write (chỉ ghi) và Read Write (cả hai).

Protected: từ khoá mà xác định trạng thái bảo mật của một tập tin đã mở. Giá trị hợp lệ: Shared (dùng chung: tập tin có thể được mở bằng ứng dụng khác), Lock Read (khoá đọc: tập tin được bảo vê chống đọc), Lock Write (khoá ghi: tập tin được bảo vệ chống ghi), và Lock Read Write (khoá đọc ghi: từ chối truy cập đến tập tin).

FileNumber: bất cứ biễu thức số nguyên nào từ 0 đấn 511 để ngụ ý số hiệu của một kênh dữ liệu còn rảnh. Vì vậy bạn có thể gửi lệnh qua kênh dữ liệu đó để truy cập đến tập tin. Số thứ tự tập tin phải được xác định bởi hàm FreeFile đúng trước câu lệnh Open (Mở).

DatasetLength: đối với các tập tin truy cập ngẫu nhiên, đặt chiều dài của các bản ghi.

Bạn chỉ có khả năng sửa đổi nội dung của một tập tin được mở bằng câu lệnh Open (Mở). Nếu bạn thử mở một tập tin đã mở, một thông điệp lỗi sẽ xuất hiện.

## Thí dụ :

    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