Create File text

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