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
2. Các chú ý khi tạo chuỗi ký tự
outem
.
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
xuống dòng
, ghi (i+1), sau đó là dấu
Tab
, tiếp theo là nội dung 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"
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.Giả thiết tôi có chuỗi ký tự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ựnày. File được tạo ra có đường dẫn là. Ví dụ:= C:\THINGHIEM\log_file.txtRõ 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ùngTôi ví dụ:Đoạn code trên bao gồm, ghi (i+1), sau đó là dấu, tiếp theo là nội dung temps.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_.txt