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
- 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 y chúng ta h c cách xử file text đơ n gi n vớ i các thao tác như mở file,
hi n thị nộ i dung, u các thao tác khác như x chuỗ i trong chư ơ ng trình thông qua
l p chuỗ i String. Bạ n thể sắ p xế p, ghép nố i mã hóa hi n thị từ ng từ , từ ng dòng 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 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ở
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 m file để đọ c và
OpenMode.Output là m file để ghi)
S nguyên filenumber dùng đ kế t hợ p vớ i file khi đư c mở cho mụ c đích đ c ghi. Bạ n
dùng nó đ tham chiế u đế n file trong quá trình x lý. u ý là các sfilenumber trong hàm
FileOpen, LineInput, FileClose EOF ph i trùng nhau thì khi m file mớ i không 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ị 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
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 thể sử dụ ng lớ p StreamReader
c a VB.NET để thự c hiệ n chứ c năng ơ 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.
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 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 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:
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 ùng tên 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).