1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình hướng dẫn các trợ giúp về cú pháp trong quá trình viết mã lệnh khai báo biến trong VB p7

5 9 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 724,88 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Input: đọc dữ liệu từ tập tin, để không gây lỗi thì tập tin này phải có sẵn trên đĩa. Output: ghi dữ liệu vào tập tin với hai điểm cần lưu ý: Nếu tập tin là có sẵn thì toàn bộ dữ liệu bên trong nó sẽ bị xóa sạch trước khi dữ liệu mới được ghi vào (ghi đè lên những dữ liệu đã có). Việc này sẽ làm mất đi những dữ liệu ban đầu. Nếu tập tin chưa tồn tại, một tập tin mới sẽ được tạo ra với tên và vị trí của...

Trang 1

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

83

Open <đường dẫn> For [Kiểu thao tác] as <filenumber> [Len=Buffersize]

Trong đó:

Ø <đường dẫn>: là một giá trị kiểu String dùng để xác định đường dẫn của tập tin (vị trí của nó trên đĩa)

Ø <Kiểu thao tác>: cách thức thao tác với tập tin, tham số này có thể nhận một trong các giá trị sau:

ƒ Input: đọc dữ liệu từ tập tin, để không gây lỗi thì tập tin này phải có sẵn trên đĩa

ƒ Output: ghi dữ liệu vào tập tin với hai điểm cần lưu ý:

™ Nếu tập tin là có sẵn thì toàn bộ dữ liệu bên trong nó sẽ bị xóa sạch trước khi dữ liệu mới được ghi vào (ghi đè lên những dữ liệu đã có) Việc này sẽ làm mất đi những dữ liệu ban đầu

™ Nếu tập tin chưa tồn tại, một tập tin mới sẽ được tạo ra với tên và vị trí của tập tin được xác định trong <đường dẫn>

ƒ Append: ghi dữ liệu vào cuối tập tin đã có (ghi thêm, nối vào những dữ liệu đã có)

ƒ <filenumber>: là một giá trị kiểu Integer đại diện cho tập tin đó Sau này, khi thao tác với tập tin này, thì giá trị này sẽ là đại diện Điều này rất hữu ích khi làm việc đồng thời với nhiều tập tin đang mở, lúc đó, để ghi hay đọc dữ liệu với tập tin nào, ta chỉ việc đưa vào giá trị của <filenumber> tương ứng trong các lệnh đọc/ghi dữ liệu

ƒ [Len = Buffersize]: chỉ ra số ký tự trong vùng đệm khi sao chép dữ liệu giữa tập tin và chương trình Đây là một giá trị tùy chọn

Ví dụ: Khi trên đĩa C không có tập tin File1.txt thì câu lệnh sau sẽ tạo mới và mở sẵn tập tin này để ghi dữ liệu:

Open “C:\file1.txt” For Output as 1

13.2.2 Đọc dữ liệu từ tập tin:

Sau khi tập tin đã được mở bằng lệnh Open với kiểu là Input, nó đã sẵn sàng cho việc đọc dữ liệu bên trong nó Dữ liệu có thể đọc theo những cách thức sau:

Đọc dữ liệu theo từng dòng 

Khái niệm dòng dữ liệu trong tập tin khác so với khái niệm dòng chữ trên trang giấy Dòng dữ liệu có thể chứa rất nhiều ký tự (có độ dài hầu như không hạn chế) và một dòng được coi là kết thúc tại nơi có chứa ký hiệu xuống dòng (vbCrLf – bao gồm hai kí tự có số hiệu 13 và 10) Cú pháp đọc một dòng từ tập tin như sau:

Line Input #<filenumber>, <strVar>

Câu lệnh này đọc dữ liệu từ dòng hiện tại của tập tin đã được mở (có chỉ số là <filenumber>)

và gán dữ liệu đọc được cho biến strVar (biến này có kiểu String) Câu lệnh Line Input

# sẽ tự động nhận dạng dòng dữ liệu thông qua kí hiệu xuống dòng (tuy nhiên nó không đưa kí hiệu xuống dòng vào biến strVar) Sau lệnh Line Input #, vị trí con trỏ đọc dữ liệu sẽ được tự động chuyển xuống dòng tiếp theo

Trang 2

84

CHÚ Ý Ngay khi mở tập tin để đọc, con trỏ đọc dữ liệu sẽ được tự động đặt ở dòng đầu

tiên trong tập tin

Ví dụ: Một tập tin văn bản có đường dẫn “C:\file1.txt” với nội dung như sau:

Mã lệnh sau sẽ đọc nội dung của 3 dòng dữ liệu đầu tiên trong tập tin:

Dim strRe1 As String, strRe2 As String, strre3 As String

Open “C:\file1.txt” For Input As 1

Line Input #1, strRe1

Line Input #1, strRe2

Line Input #1, strRe3

Debug.Print strRe1, strRe2, strre3

Close 1

Kết quả thực hiện của đoạn mã lệnh trên như sau:

CHÚ Ý Khi kết thúc thao tác với tập tin thì cần phải đóng chúng lại, nếu không thông tin

trong đó có thể mất hoặc người khác không truy cập vào tập tin đó được

Đọc một danh sách các chuỗi theo kí tự phân cách 

Đọc một danh sách các chuỗi theo kí tự phân cách là dấu phẩy (,) hoặc ký hiệu xuống dòng

(vbCrLf) với cú pháp sau:

Input # <filenumber>, <danh sách các biến>

Câu lệnh này đọc khối dữ liệu từ vị trí hiện tại của con trỏ đọc dữ liệu trong tập tin có chỉ số

<filenumber> Dữ liệu đọc được sẽ được gán vào cho <danh sách các biến> (mỗi biến

trong danh sách này đều có kiểu dữ liệu là String) Số khối dữ liệu được đọc sẽ phụ thuộc vào

số biến có trong <danh sách các biến> Khối dữ liệu được nhận dạng dựa vào dấu phẩy ( , )

hoặc ký hiệu xuống dòng (vbCrLf) Sau lệnh Input #n, vị trí con trỏ đọc dữ liệu sẽ được tự

động chuyển sang khối dữ liệu tiếp theo

CHÚ Ý Đọc dữ liệu bằng lệnh Input #n thường được dùng với tập tin mà dữ liệu của nó

được tạo ra bởi lệnh Write #n

Ví dụ: Với tập tin văn bản “C:\file1.txt” như trên, với các mã lệnh sau:

Dim strRe1 As String, strRe2 As String, strRe3 As String

Trang 3

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

85

Open “C:\file1.txt” For Input As 1

Input #1, strRe1, strRe2, strRe3

Debug.Print strRe1, strRe2, strRe3

Close 1

Ta nhận được kết quả như hình dưới:

Nếu lệnh đọc dữ liệu được gọi khi vị trí con trỏ đọc dữ liệu ở cuối tập tin thì sẽ xảy ra lỗi Để tránh lỗi này cần phải kiểm tra vị trí của con trỏ đọc dữ liệu, xem nó có ở cuối tập tin hay không Hàm EOF (Filenumber) (có kiểu Boolean) được dùng cho mục đích này, nó sẽ trả về giá trị True nếu vị trí con trỏ đọc dữ liệu đangở cuối tập tin, và ngược lại sẽ trả về giá trị False

Ví dụ sau sẽ đọc toàn bộ dữ liệu trong tập tin C:\File1.txt:

Dim strRe As String

Open "C:\file1.txt" For Input As #1

Do While Not EOF(1)

Input #1, strRe

Debug.Print strRe

Loop

Close #1

13.2.3 Ghi dữ liệu vào tập tin:

Thao tác ghi dữ liệu vào tập tin được thực hiện sau khi tập tin đã mở để ghi với hai kiểu ghi dữ liệu là ghi đè lên dữ liệu ban đầu (với thông số Output) hay ghi nối vào sau các dữ liệu ban đầu (với thông số Append) Với Output: toàn bộ nội dung ban đầu của tập tin sẽ bị xóa và con trỏ ghi dữ liệu sẽ được đặt ở vị trí đầu tiên Nếu tập tin chưa có thì nó sẽ được tự động tạo ra theo tên và vị trí của đường dẫn trong lệnh Open Với Append: việc ghi được thực hiện nối tiếp vào tập tin hiện tại, vị trí bắt đầu ghi mặc định là cuối tập tin

Ghi dữ liệu với lệnh  Print #n  

Cú pháp như sau:

Print # <filenumber>, [outputlist]

Trong đó:

Ø filenumber: chỉ số của tập tin

Ø outputlist: danh sách các giá trị cần ghi, các giá trị trong danh sách này được phân

tách nhau bởi dấu ( ; ) Nếu outputlist kết thúc bằng dấu (;) con trỏ ghi dữ liệu sẽ chuyển sang vị trí kế tiếp Ngược lại, nếu cuối danh sách để trống thì con trỏ ghi dữ liệu

sẽ chuyển sang dòng kế tiếp Các thành phần dữ liệu trong outputlist sẽ được ghi liên tục vào tập tin, người dùng có thể thêm các khoảng trống bằng lệnh Spc(n) hoặc các dấu tab bằng lệnh Tab(n)(với n là số ký tự cần thêm vào)

Ví dụ: chương trình sau sẽ ghi dữ liệu vào tập tin “C:\file1.txt” bằng lệnh Print #

Sub FilePrint()

Trang 4

86

Open "C:\file1.txt" For Output As 1

Dim Ax As Double, Ay As Double

Dim Bx As Double, By As Double

Ax = 100: Ay = 100

Bx = 200: By = 200

Print #1, "Diem A: "; Ax;

Print #1, Ay

Print #1, "Diem B: "; Bx;

Print #1, By

Close 1

End Sub

Kết quả như sau:

Ghi dữ liệu với lệnh  Write #  

Cú pháp như sau:

Write #filenumber, [outputlist]

Trong đó:

Ø filenumber: chỉ số của tập tin

Ø outputlist: danh sách các giá trị cần ghi, các giá trị trong danh sách được phân tách nhau bởi dấu ( , ) Nếu outputlist kết thúc bằng dấu ( ; ) con trỏ ghi dữ liệu sẽ chuyển sang vị trí kế tiếp Ngược lại, nếu cuối danh sách để trống thì con trỏ ghi dữ liệu

sẽ chuyển sang dòng kế tiếp Các thành phần dữ liệu trong outputlist sẽ được ghi liên tục vào tập tin và dấu phẩy ( , ) sẽ được tự động thêm vào giữa hai giá trị trong tập tin

Ví dụ: chương trình con sau sẽ ghi dữ liệu vào tập tin “C:\file2.txt”:

Sub FileWrite()

Open "C:\file2.txt" For Output As 1

Dim Ax As Double, Ay As Double

Dim Bx As Double, By As Double

Ax = 100: Ay = 100

Bx = 200: By = 200

Write #1, "Diem A: ", Ax;

Write #1, Ay

Write #1, "Diem B: ", Bx;

Write #1, By

Close 1

End Sub

Kết quả như sau:

Trang 5

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

87

13.2.4 Đóng tập tin

Sau khi thao tác đọc/ghi dữ liệu lên tập tin ta cần phải đóng chúng lại bằng lệnh Close theo cú pháp sau:

Close <filenumber>

CHÚ Ý Trong tất cả các ví dụ đọc và ghi dữ liệu trên đều có lệnh đóng tập tin sau khi kết

thúc các thao tác đọc/ghi

13.3 Xử lý dữ liệu trong tập tin theo mô hình FSO (File System Object)

Các thao tác với tập tin ở phần trên chỉ bao gồm hai loại cơ bản nhất là đọc dữ liệu từ tập tin và ghi thông tin lên tập tin, còn những thao tác khác, thường xuyên được sử dụng, như: lựa chọn tập tin, sao chép, di chuyển, xóa…, tuy có thể thực hiện được từ những lệnh đọc/ghi cơ bản trên nhưng khá rắc rối Vì vậy, để tạo thuận lợi cho người dùng, VB đã cung cấp những chức năng này thông qua mô hình FSO Đây là một tập hợp các lớp đối tượng, mà nhiệm vụ của chúng là cung cấp cho người dùng hầu hết các công cụ thao tác với tập tin

Các lớp đối tượng theo mô hình FSO là một dạng bổ sung cho VBA và được cung cấp dưới dạng thư viện lập trình với tên gọi “Microsoft Scripting Runtime” Để sử dụng thư viện này

trong VBA IDE cần thực hiện thao tác sau: trong VBAIDE chọn trình đơn Tools Ö References Ö Đánh dấu chọn Microsoft Scripting Runtime Ö Chọn OK

Hình III-25: Sử dụng thư viện lập trình Microsoft Scripting Runtime

CHÚ Ý Khi thao tác với tập tin, mô hình FSO chỉ hỗ trợ cách thức truy cập tuần tự

Ngày đăng: 10/05/2021, 14:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w