Visual Basic for Applications:
使用TOML工作

如何操作:

在VBA中处理TOML涉及解析TOML文件,以将配置或设置读入您的VBA项目。VBA没有内置对TOML的支持,因此您通常会使用解析器或将TOML数据转换为VBA可以轻松处理的格式,如JSON或XML。以下是手动解析一个简单TOML配置文件的方法:

  1. TOML文件样本 (config.toml):
title = "TOML Example"

[database]
server = "192.168.1.1"
ports = [ 8000, 8001, 8002 ]
connection_max = 5000
enabled = true
  1. 解析TOML的VBA代码

假设将TOML内容读入字符串变量tomlStr,以下VBA代码演示了解析[database]部分的简化方法:

Function ParseTOML(tomlStr As String)
    Dim lines() As String
    lines = Split(tomlStr, vbCrLf)
    
    Dim config As Object
    Set config = CreateObject("Scripting.Dictionary")
    Dim currentSection As String
    currentSection = ""
    
    Dim i As Integer
    For i = 0 To UBound(lines)
        Dim line As String
        line = Trim(lines(i))
        If InStr(line, "[") > 0 And InStr(line, "]") > 0 Then
            currentSection = Mid(line, 2, Len(line) - 2)
            Set config(currentSection) = CreateObject("Scripting.Dictionary")
        ElseIf InStr(line, "=") > 0 Then
            Dim parts() As String
            parts = Split(line, "=")
            Dim key As String
            key = Trim(parts(0))
            Dim value As String
            value = Trim(parts(1))
            config(currentSection)(key) = value
        End If
    Next i
    
    '访问解析数据的示例
    Debug.Print "数据库服务器: "; config("database")("server")
End Function
  1. 样本输出 (即时窗口):
数据库服务器: 192.168.1.1

深入探讨

TOML在开发者社区中的实际接受展示了向更简单、更易于阅读的配置文件趋势的转变,与以前普遍存在的XML形成对比。TOML的设计哲学强调清晰的语义,并旨在实现带有最小开销的直接解析。在VBA中直接处理TOML涉及手动解析或利用外部工具将TOML转换为更适合VBA的格式,因为缺乏原生支持。虽然这种手动解析方法展示了一种基本途径,但使用外部库或中间格式,如JSON,可能提供更健壮、更抗错误的解析策略。考虑到VBA与Microsoft Office的广泛集成,将TOML转换为JSON并使用VBA的原生JSON解析能力(如适用)或第三方JSON解析器可能提供了一个更加流畅的工作流。此外,随着数据序列化格式的持续演进,程序员还应考虑YAML,像TOML一样强调人类的可读性,但在复杂性和灵活性方面提供了不同的权衡。