
Hư ớ ng dẫ n lậ p trình VB. NET Chư ơ ng 12: Khám phá cách xử lý file văn bả n và chuỗ i
Biên soạ n: Phạ m Đứ c Lậ p - 1 - Add: cnt-44-dh, VIMARU
Chư ơ ng 12:
Khám phá cách xử lý file TEXT và chuỗ i
--------oOo--------
Nộ i dung thả o luậ n:
- Hiể n thị nộ i dung file text bằ ng đố i tư ợ ng TextBox
-Lư u các thông tin trong file text
- Sử dụ ng kỹ thuậ t xử lý chuỗ i để sắ p xế p và mã hóa file Text
Trong chư ơ ng này chúng ta họ c cách xử lý file text đơ n giả n vớ i các thao tác như mở file,
hiể n thị nộ i dung, lư u và các thao tác khác như xử lý chuỗ i trong chư ơ ng trình thông qua
lớ p chuỗ i String. Bạ n có thể sắ p xế p, ghép nố i mã hóa hiể n thị từ ng từ , từ ng dòng và toàn
bộ nộ i dung văn bả n trong file text.
Chú ý:
-Đố i tư ợ ng FileSystem cung cấ p các hàm như FileOpen, LineInput, PrintLine,
FileClose để thao tác vớ i tậ p tin. Đố i tư ợ ng này nằ m trong không gian tên
Microsoft.VisualBasic.
- Ngoài ra mộ t số hàm trong không gian System.IO cũng có thể dùng bổ sung.
1. Hiể n thị nộ i dung file Text bằ ng đố i tư ợ ng TextBox
Cách đơ n giả n nhấ t để hiể n thị mộ t file text là dùng điề u khiể n textbox. Để nạ p nộ i dung
file text vào textbox ta dùng 4 hàm sau: FileOpen –Mở file để dọ c hay ghi, LineInput –
Đọ c mộ t dòng văn bả n từ file, EOF –Kiể m tra xem con trỏ đãđế n cuố i file chư a ,
FileClose –Đóng file.
1.1. Mở file Text để đọ c nộ i dung
Bạ n có thể cho phép ngư ờ i dùng mở file text bằ ng cách hiể n thị hộ p thoạ i OpenfileDialog.
Sau khi ngư ờ i dùng đã chọ n file , hộ p thoạ i sẽ trả về đư ờ ng dẫ n file đầ y đủ thông qua thuộ c
tính filename.
1.2. Hàm FileOpen
Sau khi đã có tên file, bạ n có thể dùng hàm FileOpen mở file để đọ c hay ghi. Cú pháp hàm
FileOpen như sau:
FileOpen(filenumber, pathname, mode)
Trong đó:
- filenumber: số nguyên từ 1 đế n 255
-pathname: đư ờ ng dẫ n hợ p lệ trỏ đế n file cầ n mở

Hư ớ ng dẫ n lậ p trình VB. NET Chư ơ ng 12: Khám phá cách xử lý file văn bả n và chuỗ i
Biên soạ n: Phạ m Đứ c Lậ p - 2 - Add: cnt-44-dh, VIMARU
- mode: từ khóa cho biế t chế độ mở (ví dụ OpenMode.Input là mở file để đọ c và
OpenMode.Output là mở file để ghi)
Số nguyên filenumber dùng để kế t hợ p vớ i file khi nó đư ợ c mở cho mụ c đích đọ c ghi. Bạ n
dùng nó để tham chiế u đế n file trong quá trình xử lý. Lư u ý là các sốfilenumber trong hàm
FileOpen, LineInput, FileClose và EOF phả i trùng nhau thì khi mở file mớ i không gây ra
lỗ i.
Ví dụ :
Chư ơ ng trình TextBrowser sau sẽ minh họ a cách mở mộ t file text và cho hiể n thị nó lên
mộ t ô textbox.
Tìm hiể u chư ơ ng trình:
Chư ơ ng trình bao gồ m mộ t menu File vớ i hai mụ c chọ n làOpen cho phép mở file rồ i hiể n
thị nộ i dung file text đó vào mộ t textbox và mụ c Close để đóng file.
Thiế t kế giao diệ n:
Bạ n tạ o mộ t giả i pháp mớ i và thêm vào dự án có tên TextBrowser và thiế t kế giao diệ n như
sau:
Trong đó các điề u khiể n có thuộ c tính như sau:
- Textbox1: Enable –False, Multiline –True.
- OpenToolStripMenuItem: Enable –True
- CloseToolStripMenuItem: Enable –False

Hư ớ ng dẫ n lậ p trình VB. NET Chư ơ ng 12: Khám phá cách xử lý file văn bả n và chuỗ i
Biên soạ n: Phạ m Đứ c Lậ p - 3 - Add: cnt-44-dh, VIMARU
-Các điề u khiể n và thuộ c tính khác như hình.
Viế t mã:
Tạ o thủ tụ c OpenToolStripMenuItem_Click như sau:
'Khai báo hai biế n, mộ t biế n lư u toàn bộ văn bả n
'mộ t biế n lư u từ ng dòng văn bả n
Dim AllText, LineOfText As String
'Tạ o bộ lọ c file *.txt
OpenFileDialog1.Filter = "Text files (*.txt)| *.txt"
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
Try
'Mở file để đọ c
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
Do Until EOF(1)
'Đọ c từ ng dòng đế n hế t
LineOfText = LineInput(1)
'Nố i vào biế n Alltext
AllText = AllText & LineOfText & vbCrLf
Loop
'Cậ p nhậ t nộ i dung textbox
Label1.Text = OpenFileDialog1.FileName
TextBox1.Text = AllText
' Loạ i bỏ đánh dấ u chọ n cho văn bả n
TextBox1.Select(1, 0)
'Cho phép soạ n thả o
TextBox1.Enabled = True
'Cho phép chọ n mụ c Close trên menu
CloseToolStripMenuItem.Enabled = True
'Vô hiệ u hóa mụ c Open trên menu
OpenToolStripMenuItem.Enabled = False
Catch ex As Exception
MsgBox("Lỗ i mở file")
Finally
'Đóng file
FileClose(1)
End Try
End If
Tiế p theo tạ o thủ tụ c CloseToolStripMenuItem_Click như sau:
Label1.Text = "Mở file văn bả n bằ ng mụ c Open từ menu File"
TextBox1.Text = ""
OpenToolStripMenuItem.Enabled = True
CloseToolStripMenuItem.Enabled = False
Các bạ n có thể đọ c các dòng ghi chú màu xanh lá cây để biế t công dụ ng củ a từ ng phát biể u
củ a chư ơ ng trình.
Chạ y chư ơ ng trình:
Các bạ n ấ n F5 để chạ y chư ơ ng trình và mở mộ t file text bấ t kỳ để xem chư ơ ng trình chạ y.
Sử dụ ng lớ p StreamReader để mở file Text
Ngoài các hàm mở đọ c file như đã biế t, chúng ta cũng có thể sử dụ ng lớ p StreamReader
củ a VB.NET để thự c hiệ n chứ c năng tư ơ ng tự . Để sử dụ ng lớ p này ta cầ n đặ t thêm khai
báo Imports System.IO ở đầ u chư ơ ng trình.

Hư ớ ng dẫ n lậ p trình VB. NET Chư ơ ng 12: Khám phá cách xử lý file văn bả n và chuỗ i
Biên soạ n: Phạ m Đứ c Lậ p - 4 - Add: cnt-44-dh, VIMARU
Sau đây là thủ tụ c OpenToolStripMenuItem_Click đãđư ợ c viế t lạ i sử dụ ng lớ p
StreamReader:
Dim StreamReaderToDisPlay As StreamReader
OpenFileDialog1.Filter = "TEXT FILES (*TXT) | *.TXT"
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
Try
StreamReaderToDisPlay = New StreamReader _
(OpenFileDialog1.FileName)
Label1.Text = OpenFileDialog1.FileName
TextBox1.Text = StreamReaderToDisPlay.ReadToEnd
TextBox1.Enabled = True
OpenToolStripMenuItem.Enabled = False
CloseToolStripMenuItem.Enabled = True
Catch ex As Exception
MsgBox("Lỗ i mở file")
Finally
StreamReaderToDisPlay.Close()
End Try
End If
Bạ n có thể xem toàn bộ mã chư ơ ng trình trong giả i pháp TextBr owser1 củ a phầ n bài tậ p
chư ơ ng 12.
2. Tạ o mộ t file text mớ i
Tạ o file text rấ t hữ u ích khi bạ n muố n ghi ra file .log, .ini hay readme. Các bư ớ c tổ ng quát
để ghi mộ t file text có thể như sau:
- Nhậ n dl nhậ p từ ngư ờ i dùng hay do chư ơ ng trình tính ra
- Gán dl cho mộ t hay nhiề u biế n. Ví dụ như gán nộ i dung textbox1 ra mộ t biế n
- Yêu cầ u nhậ p tên file sẽ ghi ra bằ ng hộ p thoạ i SaveFileDialog
- Sử dụ ng đư ờ ng dẫ n và tên file do hộ p thoạ i SaveFileDialog trả về và gọ i hàm ghi
file
- Sử dụ ng hàm PrintLine để lư u nộ i dung biế n x uố ng file
-Đóng file khi ghi xong
Ví dụ QuickNote sau đây sẽ minh họ a việ c tạ o file text.
Tìm hiể u chư ơ ng trình:
Chư ơ ng trình gồ m mộ t ô textbox để chế dộ multiline hiệ n scrollbars cả hai chiề u (thuộ c
tính scrollbar –giá trị both), menu File gồ m ba mụ c chọ n Insert Date cho phép chèn ngày
tháng vào đầ u văn bả n, mụ c chọ n Save cho phép ghi lạ i nộ i dung ô textbox vào mộ t file
text vớ i tên do ngư ờ i dùng nhậ p vào, mụ c Close đóng chư ơ ng trình.
Thiế t kế giao diệ n:

Hư ớ ng dẫ n lậ p trình VB. NET Chư ơ ng 12: Khám phá cách xử lý file văn bả n và chuỗ i
Biên soạ n: Phạ m Đứ c Lậ p - 5 - Add: cnt-44-dh, VIMARU
Bạ n tạ o mộ t giả i pháp mớ i và thêm vào mộ t dự án có c ùng tên là QuickNote rồ i thiế t kế
giao diệ n như hình:
Viế t mã:
Tạ o thủ tụ c InsertDateToolStripMenuItem_Click như sau:
TextBox1.Text = DateString & vbCrLf & TextBox1.Text
TextBox1.Select(1, 0)
Tạ o thủ tụ c SaveToolStripMenuItem_Click như sau:
SaveFileDialog1.Filter = "Text File (*.txt) | *.txt"
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> "" Then
Try
FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)
PrintLine(1, TextBox1.Text)
Catch ex As Exception
MsgBox("Lỗ i khi ghi")
Finally
FileClose(1)
End Try
End If
Chạ y chư ơ ng trình:
Bạ n hãy chạ y chư ơ ng trình, ghi vào textbox nhữ ng đoạ n văn bả n tùy ý hay có thể sao chép
từ mộ t file khác, chèn thêm ngày tháng và lư u vào mộ t file nào đó (phả i nhậ p tên file).

