
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ỗ
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ườ ẫ ợ ệ ỏ ế ầ ở
Biên so n: Ph m Đ c L p ạ ạ ứ ậ - 1 - Add: cnt-44-dh,
VIMARU

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ỗ
- 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
Biên so n: Ph m Đ c L p ạ ạ ứ ậ - 2 - Add: cnt-44-dh,
VIMARU

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ỗ
- CloseToolStripMenuItem: Enable – False
- 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ử ụ ớ ể ở
Biên so n: Ph m Đ c L p ạ ạ ứ ậ - 3 - Add: cnt-44-dh,
VIMARU

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ỗ
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.ở ầ ươ
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 TextBrowser1 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 xu 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
Biên so n: Ph m Đ c L p ạ ạ ứ ậ - 4 - Add: cnt-44-dh,
VIMARU

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ỗ
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:ế ế ệ
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:ạ ươ
Biên so n: Ph m Đ c L p ạ ạ ứ ậ - 5 - Add: cnt-44-dh,
VIMARU

