📢 Loạt tính năng mới: Kết nối tài khoản Diễn Đàn với toàn bộ Thư Viện (Truyện/Thơ/Nhạc/Phim/Ẩm Thực)
Xin chào cả nhà!


Ban quản trị vừa hoàn tất một loạt tính năng mới, kết nối tài khoản Diễn Đàn với toàn bộ các khu vực Truyện, Thơ, Nhạc, Phim và Ẩm Thực. Xin tổng kết lại để mọi người tiện theo dõi và sử dụng:

1. Đăng nhập dùng chung toàn site
Chỉ cần 1 tài khoản Diễn Đàn, đăng nhập một lần là dùng được ở mọi khu vực. Nút "Đăng nhập / Đăng ký" đã thay cho "Giới thiệu / Trợ giúp" cũ ở đầu mỗi trang.

2. Thảo luận ngay dưới tác phẩm
Mỗi truyện, bài thơ, bài hát, phim, món ăn giờ có khung bình luận riêng ngay trên trang đọc/nghe/xem - không cần qua diễn đàn mới góp ý được. Bình luận đầu tiên sẽ tự tạo 1 chủ đề trong mục "💬 Thảo Luận Tác Phẩm Thư Viện" để mọi người cùng trao đổi.

3. Theo dõi tác phẩm
Bấm "🔔 Theo dõi tác phẩm" để nhận thông báo qua email ngay khi truyện có chương mới.

4. Yêu thích & Lịch sử đọc
Đánh dấu "⭐ Yêu thích" các tác phẩm ưng ý, và hệ thống tự ghi lại "🕘 Lịch sử đọc" mỗi khi bạn ghé đọc/nghe/xem - đồng bộ theo tài khoản, xem lại bất cứ lúc nào trong menu thành viên.

5. Huy hiệu hoạt động
Một vài huy hiệu nhỏ (bình luận viên, người theo dõi, người sưu tầm, thành viên kỳ cựu...) sẽ tự xuất hiện trên hồ sơ khi bạn hoạt động tích cực - hoàn toàn không phải hệ thống điểm/tiền thưởng, chỉ mang tính ghi nhận cho vui.

6. Ghi công người đóng góp
Tên người đăng nội dung (đánh máy, sưu tầm...) giờ sẽ tự động liên kết về hồ sơ Diễn Đàn nếu trùng với một tài khoản đang có trên diễn đàn.

7. Báo lỗi nội dung
Phát hiện lỗi chính tả, thiếu nội dung, ảnh hỏng... trong lúc đọc? Bấm "🚩 Báo lỗi nội dung" ngay trên trang, không cần rời khỏi tác phẩm đang xem.

8. Cải thiện giao diện trên điện thoại
Đầu trang và khu vực diễn đàn đã được chỉnh lại cho gọn gàng hơn trên màn hình nhỏ.

Rất mong nhận được góp ý thêm từ cả nhà để hoàn thiện dần. Cảm ơn mọi người đã luôn đồng hành cùng Việt Nam Thư Quán!

Diễn Đàn » Hướng Dẫn Lập trình

Tìm một chuỗi bên trong một file trong VB.net

0 trả lời, 894 lượt xem — Trang 1 / 1
<Bài viết đã được chỉnh sửa lúc 2007-04-10 04:54:21dvbendoi>


Bạn cần dò trong một file để tìm ra chuỗi nào đó.
Duyệt qua file từng ký tự một bằng phương thức FileStream.ReadByte, và cố gom thành chuỗi cần tìm.
Bạn dễ dàng hiện thực phép tìm kiếm toàn văn (full-text searching), mặc dù có thể tốn nhiều thời gian. Những gì bạn cần làm là duyệt qua file, đọc mỗi byte và chuyển nó thành một ký tự. Nếu đọc một ký tự trùng khớp với chuỗi cần tìm, bạn có thể kiểm tra ký tự kế tiếp có trùng khớp hay không, và tiếp tục.
Lớp FileTextSearcher dưới đây đóng gói các chức năng cần thiết khi thực hiện một phép tìm kiếm toàn văn với bất kỳ kiểu file nào.
Public Class FileTextSearcher   
_Matches As New ArrayList   
Private _FileFilter As String   
Private _SearchText As String   
Private _CaseSensitive As Boolean = True   
Public ReadOnly Property Matches() As ArrayList       
 Get           
Return _Matches       
End Get   
End Property    
 Public Property FileFilter() As
Get           
 Return _FileFilter       
End Get       
 Set(ByVal Value As String)         
   _FileFilter = Value       
End Set   
End Property    
Public Property SearchText() As String       
 Get           
Return _SearchText       
End Get       
Set(ByVal Value As String)           
 _SearchText = Value       
End Set    Property      
 Public Property CaseSensitive() As Boolean       
Get           
Return _CaseSensitive       
 End Get        Set(ByVal Value As Boolean)            
_CaseSensitive = Value       
End Set   
End Property   
  Public Sub New(ByVal fileFilter As String, _      ByVal searchText As String)       
 Me.FileFilter = fileFilter       
Me.SearchText = searchText   
 End Sub       
Public Sub Search(ByVal startingPath As String)       
Matches.Clear()       
 SearchDirectory(New DirectoryInfo(startingPath))   
End Sub      
 Private Sub SearchDirectory(ByVal dir As DirectoryInfo)       
 ' Lấy các file trong thư mục này.       
 Dim FileItem As FileInfo       
 For Each FileItem In dir.GetFiles(FileFilter)           
 ' Kiểm tra file này có trùng khớp hay không.           
 If TestFileForMatch(FileItem) Then               
 Matches.Add(FileItem)          
  End If       
 Next       
 ' Bạn có thể thêm logic đệ quy ở đây bằng cách gọi       
 ' SearchDirectory trên tất cả các thư mục con .   
 End Sub      
 Private Function TestFileForMatch(ByVal file As FileInfo) As Boolean      
  ' Mở file.       
 Dim fs As FileStream = file.OpenRead()       
 Dim Match As Boolean = False       
Dim MatchCount, MatchPosition As Integer       
 Dim Character, MatchCharacter As String       
 ' Đọc qua toàn bộ file.       
 Do Until fs.Position = fs.Length           
' Lấy một ký tự từ file.           
 Character = Convert.ToChar(fs.ReadByte())           
 ' Lấy ký tự kế tiếp từ chuỗi cần tìm để đem so trùng.           
 MatchCharacter = SearchText.Substring(MatchPosition, 1)           
 If String.Compare(Character, MatchCharacter, _              Not Me.CaseSensitive) = 0 Then              
  ' Chúng trùng khớp. Bây giờ thử so trùng ký tự kế tiếp.               
 MatchPosition += 1           
 Else              
  ' Chúng không trùng khớp. Làm lại từ đầu.               
 MatchPosition = 0           
 End If              
 ' Kiểm tra toàn bộ chuỗi đã được so trùng hay chưa.           
 If MatchPosition = SearchText.Length - 1 Then               
 Return True           
 End If       
Loop       
fs.Close()       
 Return False   
 End Function 
 End Class
Dưới đây là cách sử dụng lớp này để tìm trong các file mã lệnh Visual Basic một biến có tên là MyVariable:
Dim Searcher As New FileTextSearcher("*.vb", "MyVariable")
Searcher.Search("C:\Temp")
 ' Hiển thị kết quả.
Dim File As FileInfoFor Each File In Searcher.Matches   
Console.WriteLine(File.FullName)Next                                                              
 
Trích từ “Các giải pháp lập trình VISUAL BASIC .NET (tập 1)”
Đăng nhập để trả lời
0