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: