Khởi tạo biến từ file *.txt, *.ini

Liên hệ QC

Pansy_flower

...nợ người, nợ đời...
Thành viên danh dự
Tham gia
3/6/06
Bài viết
1,611
Được thích
14,001
Nghề nghiệp
...thiết kế máy bay cho VOI tự lái...^.^
Trong một số chương trình, để việc khởi tạo các giá trị cho các biến được linh động và tránh việc phải mở module ra sửa trực tiếp các lập trình viên thường đặt chúng vào một file bên ngoài. Tôi xin giới thiệu với các bạn đọan mã đọc các giá trị từ một file text (các bạn cũng có thể dùng file *.ini) bên ngòai.

Mã:
'******************************************************************
' Module này nhằm đọc dữ liệu từ tập tin tẽt *.txt
' Như vậy khi mở tập tin
' các số liệu thiết lập cho chương trình sẽ được đưa vào
' Chú ý: Tập tin *.txt này phải đặt trong cùng thư mục với workbook đang thao tác
' 
' Đây là cách đơn giản, tôi đề nghị các bạn nên tham khảo bài viết thao tác với tập tin *.ini
'******************************************************************
Public Function GetInformations(InformationName As String) As String 
 Dim StrPathFile As String 
 Dim f As Integer 
 Dim StrWord As String 
 On Error GoTo TBLoi 
 ' Biến chứa đường dẫn của Workbook [/COLOR] 
 StrPathFile = Application.ThisWorkbook.Path 
 ' Nếu StrPath không có ký tự cuối là  "\" thì ta thêm vào
 If Right(StrPathFile, 1) <> "\" Then 
          StrPathFile = StrPathFile & "\Config.txt" 
 Else 
          StrPathFile = StrPathFile & "Config.txt" 
 End If 
' Kiểm tra sự tồn tại của tập tin Config.txt
' Nếu không tồn tại sẽ đi đến thông báo lỗi
 If Not PathExists(StrPathFile) Then GoTo TBLoi 
' Bắt đầu lấy dữ liệu
 f = FreeFile 
 Open StrPathFile For Input As f 
' Đọc cho đến cuối tập tin 
 Do While Not EOF(f) 
          Line Input #f, StrWord 
          ' Đọc và so sánh dữ liệu trước khi gán
          If LCase(Left(StrWord, InStr(1, StrWord, "=") - 1)) = LCase(InformationName) Then 
          ' Gán giá trị bên phải của chuỗi tại vị trí dấu =
                 GetInformations = Mid(StrWord, InStr(1, StrWord, "=") + 1) 
           End If 
  Loop 
          Close f 
          Exit Function 
TBLoi: 
GetInformations = "" 
End Function

Ví dụ: trong module tôi khai báo biến như sau
Mã:
Public TenWB as String
Sau đó tôi muốn trong chương trình của tôi khởi tạo các biến được lấy từ file config.txt được đặt cùng thư mục với tập tin excel hiện hành tôi có thủ tục khởi tạo biến như sau:
Mã:
Sub KhoiTaoBien()
  TenWB = GetInformations("TenWB") 
End Sub

Và trong chương trình các bạn chỉ việc kiểm tra biến TenWB, nếu biến TenWB="" thì bạn không thực hiện các thao tác.

Các bạn có thể tham khảo thêm bài: Thao tác với tập tin *.ini (Vì tập tin *.ini có cấu trúc theo Section Key)

Chúc các bạn thành công.

Lê Văn Duyệt
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

Bài viết mới nhất

Back
Top Bottom