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.

Biểu tượng Ghi chú

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