SỐ 83
HỒ LÔ BIẾN

Ai VB.NET hông?
Mở FileStream
CHƯƠNG CAN CHÍP

Hổm rày, từ ngày mở quán “VB.NET hông?”, tui toàn bán món… chay, hổng chừng bà con ngán quá kéo nhau sang quán khác. Thông cảm nhe, dịch cúm gia cầm mà! Hôm nay tui mần món mặn, mời bạn xơi thử! Hì hì…

Nếu có xài VB rồi, hẳn bạn đều biết một số hàm để đọc/ghi các tập tin văn bản. VB.NET cung cấp lớp System.IO.FileStream để mình tha hồ vọc các tập tin loại này. Lớp FileStream cho ta khả năng đọc/ghi tuần tự hoặc ngẫu nhiên các dòng của tập tin văn bản (theo như "người ta" quảng cáo thì cực kỳ nhanh và an toàn). Để tạo một FileStream, bạn khai báo nó như bất kỳ biến nào khác. Bạn nhớ dùng từ chốt New trước tên loại dữ liệu FileStream trên dòng khai báo.

Tên hằng

Mô tả

Append

Mở tập tin nếu có nó, rồi chui tọt đến cuối tập tin. Hoặc tạo một tập tin mới. Chỉ mần chung với FileAccess.Write

Create

Chỉ đạo cho hệ điều hành tạo một tập tin mới, nếu có rồi cũng ghi đè cái cũ luôn.

CreateNew

Chỉ đạo cho hệ điều hành tạo một tập tin mới, nếu có rồi thì … la lên có một lỗi.

Open

Chỉ đạo cho hệ điều hành mở một tập tin đã có.

OpenOrCreate

Chỉ đạo cho hệ điều hành mở một tập tin đã có. Nếu không có thì tạo mới.

Truncate

Chỉ đạo cho hệ điều hành mở một tập tin đã có và xóa hết nội dung của nó.

Bảng 1: Các hằng file-mode

Không như mấy lớp khác, cô nàng FileStream chỉ nói thách có vài món, nào là: tên tập tin cần mở hoặc cần tạo, mở như thế nào (file-mode), mức độ truy xuất ra sao (file-access), có cho xài chung (file-sharing) hông ? Và thật dễ chịu khi mình chỉ cần “nói” Close, nàng sẽ… cuốn gói đi ngay tức thì.

Tên hằng

Mô tả

Read

Có thể đọc dữ liệu từ tập tin.

Write

Có thể ghi dữ liệu vào tập tin.

ReadWrite

Có thể đọc/ghi dữ liệu từ/vào tập tin.

Bảng 2: Các hằng file-access

Đặc biệt, bạn có thể dùng hành vi Lock để hổng cho ứng dụng nào khác được động đến nàng. Để mở khóa cho nàng, bạn dùng hành vi Unlock. Chỉ cần nhìn qua các bảng 1, 2 và 3, bạn cũng đủ hình dung lớp FileStream tiện dụng và dễ xài như thế nào. Mình thử liền xem sao, nghen!

Tên hằng

Mô tả

None

Mọi yêu cầu mở tập tin đều bị thất bại cho đến khi tập tin được đóng lại.

Read

Cho phép mở thêm lần nữa để đọc.

Write

Cho phép mở thêm lần nữa để ghi.

ReadWrite

Cho phép mở thêm lần nữa để đọc/ghi.

Bảng 3: Các hằng file-share

Bạn hãy mở VB.NET để mần ứng dụng thuộc kiểu Windows Application, vẽ các ô điều khiển lên Form1 theo bảng 4.

Khi viết các mã lệnh cho Form1, để xài FileStream cho tiện, đừng quên cho một dòng Imports System.IO vào ngay trước dòng Public Class Form1.

Ba nút lệnh [Tạo mới], [Ghi][Đọc nội dung] minh họa cách tạo mới một tập tin, cách ghi một dòng vào tập tin và cách đọc nội dung tập tin ấy. Để đơn giản, bạn cứ gán thẳng tên tập tin cụ thể cho một biến trong các thủ tục, ví dụ: D:\TEST.TXT. Nội dung các thủ tục xử lý tình huống như đoạn mã 1. Chúc bạn "ngon miệng".

Đoạn mã 1

 

Private Sub btnTaoMoi_Click(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles btnTaoMoi.Click

  Dim TenTapTin As String = "D:\TEST.TXT"

  Dim FileStream_CuaToi As New FileStream(TenTapTin, _ 

  FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite)

  ' Lệnh Dim bên trên đã tạo xong tập tin D:\TEST.TXT

  FileStream_CuaToi.Close() ‘ Chỉ cần đóng lại là xong

End Sub

Private Sub btnGhi_Click(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles btnGhi.Click

  Dim TenTapTin As String = "D:\TEST.TXT"

  Dim FileStream_CuaToi As New FileStream(TenTapTin, _

  FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)

  ' Tạo bộ đồ nghề để ghi cho file-stream vừa mở bằng lệnh Dim

  Dim BoDoNgheDeGhi As New StreamWriter(FileStream_CuaToi)

  ' Ghi một dòng vào tập tin

  BoDoNgheDeGhi.WriteLine("Đây là dòng mẫu để ghi vào tập tin.")

  ' Đóng tập tin sau khi xài xong

  BoDoNgheDeGhi.Close()

  FileStream_CuaToi.Close()

End Sub

Private Sub btnDoc_Click(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles btnDoc.Click

  Dim TenTapTin As String = "D:\TEST.TXT"

  Dim FileStream_CuaToi As New FileStream(TenTapTin, _

  FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)

  ' Tạo bộ đồ nghề để đọc cho file-stream vừa mở bằng lệnh Dim

  Dim BoDoNgheDeDoc As New StreamReader(FileStream_CuaToi)

  ' Đọc toàn bộ tập tin, gán nội dung cho ô TextBox

  txtNoiDung.Text = BoDoNgheDeDoc.ReadToEnd()

  ' Đóng tập tin sau khi xài xong

  BoDoNgheDeDoc.Close()

  FileStream_CuaToi.Close()

End Sub

 

Ô điều khiển

Thuộc tính

Trị

Label

Name

Label1

 

Caption

Nội dung tập tin:

TextBox

Name

txtNoiDung

 

Multiline

True

 

ScrollBars

Both

Button

Name

btnTaoMoi

 

Text

Tạo mới

Button

Name

btnGhi

 

Text

Ghi

Button

Name

btnDoc

 

Text

Đọc nội dung

Bảng 4: Thuộc tính các ô điều khiển trên Form1

[Đầu trang]
Trang chủ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Cõi người ta
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền Công ty Phần mềm & Truyền thông VASC
 99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn
Mọi chi tiết về kinh doanh và quảng cáo xin liên hệ Phòng Quảng cáo. Tel: (04) 9782077 kd@vasc.com.vn