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...
CHƯƠNG III: CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC Open For [Kiểu thao tác] as [Len=Buffersize] Trong đó: Ø : giá trị kiểu String dùng để xác định đường dẫn tập tin (vị trí đĩa) Ø : cách thức thao tác với tập tin, tham số nhận giá trị sau: Input: đọc liệu từ tập tin, để không gây lỗi tập tin phải có sẵn đĩa Output: ghi liệu vào tập tin với hai điểm cần lưu ý: Nếu tập tin có sẵn tồn liệu bên bị xóa trước liệu ghi vào (ghi đè lên liệu có) Việc làm liệu ban đầu Nếu tập tin chưa tồn tại, tập tin tạo với tên vị trí tập tin xác định Append: ghi liệu vào cuối tập tin có (ghi thêm, nối vào liệu có) : giá trị kiểu Integer đại diện cho tập tin Sau này, thao tác với tập tin này, giá trị đại diện Điều hữu ích làm việc đồng thời với nhiều tập tin mở, lúc đó, để ghi hay đọc liệu với tập tin nào, ta việc đưa vào giá trị tương ứng lệnh đọc/ghi liệu [Len = Buffersize]: số ký tự vùng đệm chép liệu tập tin chương trình Đây giá trị tùy chọn Ví dụ: Khi đĩa C khơng có tập tin File1.txt câu lệnh sau tạo mở sẵn tập tin để ghi liệu: Open “C:\file1.txt” For Output as 13.2.2 Đọc liệu từ tập tin: Sau tập tin mở lệnh Open với kiểu Input, sẵn sàng cho việc đọc liệu bên Dữ liệu đọc theo cách thức sau: Đọc dữ liệu theo từng dòng Khái niệm dòng liệu tập tin khác so với khái niệm dòng chữ trang giấy Dịng liệu chứa nhiều ký tự (có độ dài khơng hạn chế) dòng coi kết thúc nơi có chứa ký hiệu xuống dịng (vbCrLf – bao gồm hai kí tự có số hiệu 13 10) Cú pháp đọc dòng từ tập tin sau: Line Input #, Câu lệnh đọc liệu từ dịng tập tin mở (có số ) gán liệu đọc cho biến strVar (biến có kiểu String) Câu lệnh Line Input # tự động nhận dạng dòng liệu thơng qua kí hiệu xuống dịng (tuy nhiên khơng đưa kí hiệu xuống dịng vào biến strVar) Sau lệnh Line Input #, vị trí trỏ đọc liệu tự động chuyển xuống dòng 83 CHÚ Ý Ngay mở tập tin để đọc, trỏ đọc liệu tự động đặt dịng tập tin Ví dụ: Một tập tin văn có đường dẫn “C:\file1.txt” với nội dung sau: Mã lệnh sau đọc nội dung dòng liệu tập tin: Dim strRe1 As String, strRe2 As String, strre3 As String Open “C:\file1.txt” For Input As Line Input #1, strRe1 Line Input #1, strRe2 Line Input #1, strRe3 Debug.Print strRe1, strRe2, strre3 Close Kết thực đoạn mã lệnh sau: CHÚ Ý Khi kết thúc thao tác với tập tin cần phải đóng chúng lại, khơng thơng tin người khác khơng truy cập vào tập tin Đọc một danh sách các chuỗi theo kí tự phân cách Đọc danh sách chuỗi theo kí tự phân cách dấu phẩy (,) ký hiệu xuống dòng (vbCrLf) với cú pháp sau: Input # , Câu lệnh đọc khối liệu từ vị trí trỏ đọc liệu tập tin có số Dữ liệu đọc gán vào cho (mỗi biến danh sách có kiểu liệu String) Số khối liệu đọc phụ thuộc vào số biến có Khối liệu nhận dạng dựa vào dấu phẩy ( , ) ký hiệu xuống dịng (vbCrLf) Sau lệnh Input #n, vị trí trỏ đọc liệu tự động chuyển sang khối liệu CHÚ Ý Đọc liệu lệnh Input #n thường dùng với tập tin mà liệu tạo lệnh Write #n Ví dụ: Với tập tin văn “C:\file1.txt” trên, với mã lệnh sau: Dim strRe1 As String, strRe2 As String, strRe3 As String 84 CHƯƠNG III: CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC Open “C:\file1.txt” For Input As Input #1, strRe1, strRe2, strRe3 Debug.Print strRe1, strRe2, strRe3 Close Ta nhận kết hình dưới: Nếu lệnh đọc liệu gọi vị trí trỏ đọc liệu cuối tập tin xảy lỗi Để tránh lỗi cần phải kiểm tra vị trí trỏ đọc liệu, xem có cuối tập tin hay khơng Hàm EOF (Filenumber) (có kiểu Boolean) dùng cho mục đích này, trả giá trị True vị trí trỏ đọc liệu đangở cuối tập tin, ngược lại trả giá trị False Ví dụ sau đọc tồn liệu 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 liệu vào tập tin: Thao tác ghi liệu vào tập tin thực sau tập tin mở để ghi với hai kiểu ghi liệu ghi đè lên liệu ban đầu (với thông số Output) hay ghi nối vào sau liệu ban đầu (với thơng số Append) Với Output: tồn nội dung ban đầu tập tin bị xóa trỏ ghi liệu đặt vị trí Nếu tập tin chưa có tự động tạo theo tên vị trí đường dẫn lệnh Open Với Append: việc ghi thực nối tiếp vào tập tin tại, vị trí bắt đầu ghi mặc định cuối tập tin Ghi dữ liệu với lệnh Print #n Cú pháp sau: Print # , [outputlist] Trong đó: Ø filenumber: số tập tin Ø outputlist: danh sách giá trị cần ghi, giá trị danh sách phân tách dấu ( ; ) Nếu outputlist kết thúc dấu (;) trỏ ghi liệu chuyển sang vị trí Ngược lại, cuối danh sách để trống trỏ ghi liệu chuyển sang dòng Các thành phần liệu outputlist ghi liên tục vào tập tin, người dùng thêm khoảng trống lệnh Spc(n) dấu tab lệnh Tab(n)(với n số ký tự cần thêm vào) Ví dụ: chương trình sau ghi liệu vào tập tin “C:\file1.txt” lệnh Print # Sub FilePrint() 85 Open "C:\file1.txt" For Output As 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 End Sub Kết sau: Ghi dữ liệu với lệnh Write # Cú pháp sau: Write #filenumber, [outputlist] Trong đó: Ø filenumber: số tập tin Ø outputlist: danh sách giá trị cần ghi, giá trị danh sách phân tách dấu ( , ) Nếu outputlist kết thúc dấu ( ; ) trỏ ghi liệu chuyển sang vị trí Ngược lại, cuối danh sách để trống trỏ ghi liệu chuyển sang dòng Các thành phần liệu outputlist ghi liên tục vào tập tin dấu phẩy ( , ) tự động thêm vào hai giá trị tập tin Ví dụ: chương trình sau ghi liệu vào tập tin “C:\file2.txt”: Sub FileWrite() Open "C:\file2.txt" For Output As 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 End Sub Kết sau: 86 CHƯƠNG III: CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC 13.2.4 Đóng tập tin Sau thao tác đọc/ghi liệu lên tập tin ta cần phải đóng chúng lại lệnh Close theo cú pháp sau: Close CHÚ Ý Trong tất ví dụ đọc ghi liệu có lệnh đóng tập tin sau kết thúc thao tác đọc/ghi 13.3 Xử lý liệu tập tin theo mơ hình FSO (File System Object) Các thao tác với tập tin phần bao gồm hai loại đọc liệu từ tập tin ghi thông tin lên tập tin, thao tác khác, thường xuyên sử dụng, như: lựa chọn tập tin, chép, di chuyển, xóa…, thực từ lệnh đọc/ghi rắc rối Vì vậy, để tạo thuận lợi cho người dùng, VB cung cấp chức thơng qua mơ hình FSO Đây tập hợp lớp đối tượng, mà nhiệm vụ chúng cung cấp cho người dùng hầu hết công cụ thao tác với tập tin Các lớp đối tượng theo mơ hình FSO dạng bổ sung cho VBA cung cấp dạng thư viện lập trình với tên gọi “Microsoft Scripting Runtime” Để sử dụng thư viện VBA IDE cần thực thao tác sau: 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 hỗ trợ cách thức truy cập 87 ... Đọc một danh sách? ?các? ?chuỗi theo kí tự phân cách Đọc danh sách chuỗi theo kí tự phân cách dấu phẩy (,) ký hiệu xuống dòng (vbCrLf) với cú pháp sau: Input # , Câu lệnh đọc khối liệu từ vị trí trỏ đọc liệu tập... sách biến> (mỗi biến danh sách có kiểu liệu String) Số khối liệu đọc phụ thuộc vào số biến có Khối liệu nhận dạng dựa vào dấu phẩy ( , ) ký hiệu xuống dòng (vbCrLf) Sau lệnh. .. đường dẫn lệnh Open Với Append: việc ghi thực nối tiếp vào tập tin tại, vị trí bắt đầu ghi mặc định cuối tập tin Ghi dữ liệu với? ?lệnh? ?Print #n Cú pháp sau: Print # , [outputlist] Trong