ganbarou
Thành viên mới 

			
		- Tham gia
 - 18/5/21
 
- Bài viết
 - 25
 
- Được thích
 - 3
 
- Giới tính
 - Nam
 
Chào mọi người. Hiện tại em đang mắc tại bài toán như sau:
Bài toán: Đọc và kiểm tra từng dòng trong file txt. Các file txt lớn hơn 100Mb và bị Encoding EUC-JP.
Code hiện tại của em như thế này:
	
	
	
		
Vấn đề: Với code trên thì thời gian để đọc toàn bộ file 100Mb là khoảng 2 phút. Em muốn rút ngắn thời gian này lại thì nên làm như thế nào ạ?
Update: Em trình bày thêm một tý yêu cầu:
Hình bên dưới là một phần bé tý trong cái file em cần lấy dữ liệu. Mấy cái khung màu đỏ là thông tin muốn lấy (mỗi lần lấy bất kỳ 1 cái nào trong đống đấy)
Em làm được phần này sơ sơ rồi, nhưng phải đọc từng dòng 1 trong file như code trên (thay dòng debug.print bằng đoạn khác để xử lý). Nhưng cách này khá mất thời gian nên em lên đây mong mọi người giúp đỡ, tìm kiếm giải pháp tốt hơn.

!!! Do vấn đề bảo mật nên hiện tại em không thể đăng tải file demo lên, em sẽ tìm cách đăng sau!!!
Mọi giải pháp đưa ra đều rất quý giá với em, mong mọi người giúp đỡ.
!!!Lần đầu em động đến cái VBA, với mới tham gia diễn đàn nên nhiều cái ngu lắm mong mọi người bỏ qua ^^
				
			Bài toán: Đọc và kiểm tra từng dòng trong file txt. Các file txt lớn hơn 100Mb và bị Encoding EUC-JP.
Code hiện tại của em như thế này:
		Mã:
		
	
	Sub test()
    Dim ObjStream As Object
    Dim strTmp As String
    Dim filepath As String
   filepath = .......... 'duong dan file
    Set ObjStream = CreateObject("ADODB.stream")
    With ObjStream
        .Type = adTypeText
        .Charset = "EUC-JP"
        .LineSeparator = adLF
        .Open
        Call .LoadFromFile(filepath)
    End With
  
    Do Until ObjStream.EOS
        strTmp = ObjStream.ReadText(adReadLine)
        Debug.Print strTmp
    Loop
    ObjStream.Close
    Set ObjStream = Nothing
End Sub
	Vấn đề: Với code trên thì thời gian để đọc toàn bộ file 100Mb là khoảng 2 phút. Em muốn rút ngắn thời gian này lại thì nên làm như thế nào ạ?
Update: Em trình bày thêm một tý yêu cầu:
Hình bên dưới là một phần bé tý trong cái file em cần lấy dữ liệu. Mấy cái khung màu đỏ là thông tin muốn lấy (mỗi lần lấy bất kỳ 1 cái nào trong đống đấy)
Em làm được phần này sơ sơ rồi, nhưng phải đọc từng dòng 1 trong file như code trên (thay dòng debug.print bằng đoạn khác để xử lý). Nhưng cách này khá mất thời gian nên em lên đây mong mọi người giúp đỡ, tìm kiếm giải pháp tốt hơn.

!!! Do vấn đề bảo mật nên hiện tại em không thể đăng tải file demo lên, em sẽ tìm cách đăng sau!!!
Mọi giải pháp đưa ra đều rất quý giá với em, mong mọi người giúp đỡ.
!!!Lần đầu em động đến cái VBA, với mới tham gia diễn đàn nên nhiều cái ngu lắm mong mọi người bỏ qua ^^
			
				Lần chỉnh sửa cuối: 
			
		
	
								
								
									
	
								
							
							
	
	  







					
				





 haizzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz