Bạn cần đăng nhập để thấy link
có rất nhiều kiến thức được sử dụng, vì vậy, tôi sẽ chia sẻ dần dần các kiến thức đã được sử dụng trong dự án đó.Hôm nay chủ đề là việc tạo ra một file text.
Nhắc lại quan điểm thiết kế: Với dữ liệu và xử lý logic để ra output sẽ có những trường hợp dữ liệu không đúng, vì vậy người thiết kế cần dự đoán được các trường hợp như vậy và cho Tool ghi ra một file, ta gọi đó là file log. Mục đích là để người dùng nhìn vào file log và kiểm tra lại dữ liệu của họ. File log phổ biến nhất là file text (txt). Bởi vì tốc độ tạo nhanh, không mất thời gian như việc tạo file Excel.
1. Về việc tạo ra file text.
Giả thiết tôi có chuỗi ký tự outem là nội dung log. Tôi cần tạo ra file text có nội dung chính là chuỗi ký tự outem này. File được tạo ra có đường dẫn là lk. Ví dụ:
lk = C:\THINGHIEM\log_file.txt
Mã:
Sub CreateAfile(ByVal lk As String, ByVal outem As String)
Dim fso As Object, MyFile As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(lk, True, True)
MyFile.Write outem
MyFile.Close
Set fso = Nothing
End Sub
Rõ ràng người dùng vẫn muốn xem trên Excel. Điều này có lý do của nó, vì Excel có thể hiện thị các cột. Đây là điều mà txt không làm tốt. Tuy nhiên tạo ra file txt thì tốc độ nhanh, do đó chúng ta không thay đổi cách nghĩ này. Nhưng bằng cách thả file txt vào Excel thì cũng có thể cho hiển thị như một file Excel (Mở phần mềm Excel, sau đó kéo thả file txt vào giao diện Excel).
Để phân tách các cột ta sẽ dùng Tab.
Tôi ví dụ:
Mã:
outem = outem & vbNewLine & (i + 1) & vbTab & temps
3. Về đường link lk.
Việc tạo ra một file trùng tên để trong cùng một folder là điều không nên. Tuy nhiên nếu mỗi lần tạo file lại kiểm tra xem có file trùng tên hay không, điều này thật phiền phức.
Ta sẽ dùng dữ kiện ngày tháng năm giờ phút giây để tạo ra tên file mang tính duy nhất. Mỗi thời điểm chạy tool thì thông số ngày tháng năm giờ phút giây là một tham số thay đổi không bị cố định, cho nên không xảy ra vấn đề trùng tên file như đã nêu ở trên.
Ví dụ file log có tên là:
Log_CuttedFromMasterBOM_200125000510.txt
Mã:
lk = "C:\VBA\"
lk = lk & "Log_CuttedFromMasterBOM_" & Format(Now, "yymmddhhmmss") & ".txt"