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

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi levanduyet, 13 Tháng mười hai 2004.

2,748 lượt xem

  1. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    KHỞI TẠO CÁC BIẾN TỪ FILE *.TXT HAY *.INI
    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.
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Module nay nham doc du lieu tu file *.txt
    ' Neu ban muon la file *.ini thi ban chinh sua lai ma
    ' Nhu vay khi tap tin duoc mo
    ' cac so lieu can cho chuong trinh se duoc nap vao
    ' Chu y: File nay phai duoc dat trong cung thu muc
    ' voi Workbook thao tac
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetInformations(InformationName As String) As String
    Dim StrPathFile As String
    Dim f As Integer
    Dim StrWord As String
    On Error GoTo TBLoi
    ' Ten duong dan cua Workbook
    StrPathFile = Application.ThisWorkbook.Path
    ' Neu StrPath khong co ky tu cuoi la "\" thi ta them vao
    If Right(StrPathFile, 1) <> "\" Then
    StrPathFile = StrPathFile & "\Config.txt"
    Else
    StrPathFile = StrPathFile & "Config.txt"
    End If
    ' Kiem tra su ton tai cua File Config.ini
    ' Neu khong ton tai thi nhay toi thong bao loi
    If Not PathExists(StrPathFile) Then GoTo TBLoi
    ' Bat dau lay du lieu
    f = FreeFile
    Open StrPathFile For Input As f
    ' Doc cho den cuoi File
    Do While Not EOF(f)
    Line Input #f, StrWord
    ' Doc va so sanh du lieu truoc khi gan
    If LCase(Left(StrWord, InStr(1, StrWord, "=") - 1)) = LCase(InformationName) Then
    ' Gan gia tri ben phai cua chuoi,
    ' tai vi tri dau =, cong cho 1
    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
    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:
    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.
    Chúc các bạn thành công.
    Lê Văn Duyệt
    levanduyet@yahoo.com
     
    #1
  2. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Tuyệt! Cám ơn anh Duyệt nhiều.
    Như vậy là em có thêm ý tưởng nâng cấp một số add-ins của em rồi.
    Anh Duyệt hướng dẩn thêm những điều cơ bản giúp em nhé như
    - Khởi tạo file
    - Kinh nghiệm về ghi file
    Cám ơn anh Duyệt vì em ngán đọc những quyển sách thiệt dày nhưng không tìm nổi thông tin mình muốn tìm
     
    #2

Chia sẻ trang này