Input# Statement

Đọc dữ liệu từ một tập tin dãy còn mở.

Cú pháp:

Input #FileNumber As Integer; var1[, var2[, var3[,...]]]

Tham số :

FileNumber: số thứ tự của tập tin mà chứa dữ liệu bạn muốn đọc. Tập tin phải được mở bằng câu lệnh « Open », dùng từ khoá INPUT (nhập liệu).

var: một biến kiểu số hoặc chuỗi cho đó bạn gán các giá trị được đọc từ tập tin còn mở.

Câu lệnh Input# đọc các giá trị thuộc số hoặc các chuỗi từ một tập tin còn mở, và gán dữ liệu cho một hai nhiều biến. Một biến thuộc số được đọc đến khi gặp đầu tiên một ký tự xuống dòng (CR, Asc=13; LF, Asc=10), dấu cách hoặc dấu phẩy. Biến chuỗi được đọc đến khi gặp đầu tiên một ký tự xuống dòng (CR, Asc=13; LF, Asc=10) hoặc dấu phẩy.

Dữ liệu và các kiểu dữ liệu trong tập tin được mở phải xuất hiện theo cùng một thứ tự với các biến được gửi qua trong tham số « var ». Nếu bạn gán giá trị không thuộc số cho một biến thuộc số, « var » được gán một giá trị số không.

Các bản ghi phân tách bằng dấu phẩy không thể được gán cho một biến chuỗi. Dấu nháy kép « " » trong tập tin cũng bị bỏ qua. Nếu bạn muốn đọc các ký tự như vậy trong tập tin, hãy dùng câu lệnh Line Input# để đọc từng dòng tập tin văn bản thuần (tập tin chỉ chứa các ký tự có thể in ra).

Nếu tới kết thúc tập tin trong khi đọc một phần tử dữ liệu thì gặp lỗi nên hủy bỏ tiến trình.

Thí dụ :

Sub ExampleWorkWithAFile

Dim iCount As Integer

Dim sName As String

Dim sValue As Integer

Dim sFileName As String

 

sFileName = "c:\data.txt"

iCount = Freefile

 

' Write data ( which we will read later with Input ) to file

Open sFileName For Output As iCount

sName = "Hamburg"

sValue = 200

Write #iCount, sName, sValue

sName = "New York"

sValue = 300

Write #iCount, sName, sValue

sName = "Miami"

sValue = 459

Write #iCount, sName, sValue

Close #iCount

 

iCount = Freefile

' Read data file using Input

Open sFileName For Input As iCount

Input #iCount; sName, sValue

MsgBox sName & " " & sValue

Input #iCount; sName, sValue

MsgBox sName & " " & sValue

Input #iCount; sName, sValue

MsgBox sName & " " & sValue

Close #iCount

End Sub