INI 文件 - 通过 VBS 中的键名检索节名

2024-02-02

我想从 INI 文件中检索仅具有唯一键名称的部分名称

我的ini文件:

...
[Area.104]
Title=Central North America
Local=Scenery\NAMC
Layer=104
Active=TRUE
Required=FALSE

[Area.105]
Title=Eastern North America
Local=Scenery\NAME
Layer=105
Active=TRUE
Required=FALSE

[Area.106]
Title=Western North America
Local=Scenery\NAMW
Layer=106
Active=TRUE
Required=FALSE
...

如何从唯一键 Title=Eastern North America 获取部分名称 [Area.105] ???

谢谢


我有两种方法可以找到所需的区号:

METHOD 1

Option Explicit
Dim strFilePath, ofso, ofile, strFileData, strKey, strPrev, strCurr
strFilePath=""        '<-- Enter the absolute path of your .ini file in this variable

Set ofso = CreateObject("scripting.FileSystemObject")
Set ofile = ofso.OpenTextFile(strFilePath,1,False)
strKey = "Eastern North America"             '<-- Enter Unique title for which you want the Area code

strPrev=""
strCurr=""
Do 
    strCurr = ofile.ReadLine
    If InStr(1,strCurr,strKey)<>0 Then
        Exit Do
    End If
    strPrev = strCurr
Loop Until ofile.AtEndOfStream
MsgBox strPrev

Set ofile = Nothing
Set ofso = Nothing

方法2(使用正则表达式)

Option Explicit
Dim strFilePath, ofso, ofile, strFileData, strKey, re, objMatches
strFilePath=""           '<-- Enter the absolute path of your .ini file in this variable

Set ofso = CreateObject("scripting.FileSystemObject")
Set ofile = ofso.OpenTextFile(strFilePath,1,False)
strFileData = ofile.ReadAll()
ofile.Close
strKey = "Eastern North America"     '<-- Enter Unique title for which you want the Area code

Set re = New RegExp
re.Global=True
re.Pattern="\[([^]]+)]\s*Title="&strKey
Set objMatches = re.Execute(strFileData)
If objMatches.Count>0 Then
    MsgBox objMatches.Item(0).Submatches.Item(0)
End If

Set re = Nothing
Set ofile = Nothing
Set ofso = Nothing

>>>单击此处查看正则表达式演示 https://regex101.com/r/kW7TJZ/2

正则表达式解释:

  • \[- 匹配文字[
  • ([^]]+)- 捕获 1 次以上出现的任意字符]在一组
  • ]- 匹配文字]
  • \s*- 匹配 0+ 空格(包括换行符)
  • Title=- 匹配文本Title=。然后将其与变量连接起来strKey包含唯一标题的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

INI 文件 - 通过 VBS 中的键名检索节名 的相关文章

随机推荐

  • KeyNotFoundException 信息

    我有一个 C Silverlight 应用程序 它随机抛出一个 KeyNotFoundException 我不知道找不到什么钥匙 这让我想到了两个问题 Does a KeyNotFoundException存储 暴露它试图找到什么密钥 当我
  • 如何判断弹出页面是否打开?

    我正在开发一个 Chrome 扩展程序 我正在寻找如何 从后台页面 找出弹出页面是否打开 我调查了消息传递 http code google com chrome extensions messaging html但我不确定这是否对我有帮助
  • 如何为 ASP.net/C# 应用程序配置文件值中的值添加 & 符号

    我有一个 C 程序 其值位于配置文件中 我想要的是存储 url 值的 符号 例如
  • 为非零值的运行创建组 ID

    我想在向量中找到连续的非零元素 至少由一个零分隔 并为每个组分配一个 ID 后续整数 玩具矢量 value lt c 1 1 2 3 4 3 0 0 0 1 2 3 9 8 0 0 3 2 在此示例中 存在三个非零值 1 1 2 3 4 3
  • 如何链接不同的表单?

    我在第一个问题中得到了很大的帮助 希望有人能告诉我或让我参考有关该主题的早期问题 我想链接不同的表单 就像我单击第一个表单上的按钮一样 它会打开第二个 基本上 我要为手机功能 如短信 通话等 制作一个菜单 所以我希望如果我单击 通话 则会打
  • VIM - 基于搜索正则表达式替换

    我有一个包含多条 1000 多条 记录的文件 例如 lbc3 ssa2 lie1 sld0 ssdasd 我可以通过以下方式找到它们 s w l 0 9 我想要做的是将找到的每个模式的最后部分替换为 我做不到 s s w l 0 9 因为它
  • 如何对齐换行成多行的跨度中的缩进线?

    有谁知道如何对齐第二行 span info margin left 10px color b1b1b1 font size 11px font style italic font weight bold span class info sp
  • Protocol Buffer 首次使用高延迟

    在我们的一个 java 应用程序中 我们有相当多的协议缓冲区类 并且 jar 本质上公开了一个接口 其中包含另一个应用程序使用的一种方法 我们注意到 第一次调用此方法时 调用时间非常长 gt 500ms 而后续调用则要快得多 当在不同的应用
  • CoreData:错误:严重的应用程序错误。核心数据更改处理期间捕获异常

    嗨 我崩溃了 当我尝试将 1000 条记录插入后台数据库时 出现以下异常 CoreData error Serious application error 在核心数据更改处理期间捕获异常 这通常是观察者内部的错误 NSManagedObje
  • Python:防止信号传播到子线程

    import threading import time def worker i while True try print i time sleep 10 break except Exception msg print msg thre
  • Angular,从当前服务调用服务功能

    我有一个名为 sharedData 的服务 其中包含一些函数 如何从另一个此类函数调用其中一个函数 这里是代码 用 标记故障函数 谢谢 service sharedData function http var refillList var
  • 将 numpy 数组与公共维度“合并”[重复]

    这个问题在这里已经有答案了 我有两个矩阵 对应于数据点 x y1 and x y2 x y1 0 0 1 1 2 2 3 3 4 4 5 5 x y2 0 5 0 5 1 5 1 5 2 5 2 5 3 5 3 5 4 5 4 5 5 5
  • 卡桑德拉不可用异常()

    线程 main 中的异常不可用异常 在 org apache cassandra thrift Cassandra batch mutate result read Cassandra java 16485 在 org apache cas
  • 如何将空跨高度设置为等于默认行高?

    我有一套 span 元素 每个元素都嵌套到对应的 div 他们构建了一堆面板 如下图所示 当 span 包含一些文本时 它具有正常的高度 但是当它为空时 它的高度是0px 但我需要它有一个正常的高度 使它看起来像图片中的那样 如何实现这种行
  • jade/pug 是否可以在 include 语句中使用变量?

    我正在开发 Nodejs 应用程序 但我对 include 语句有疑问 当我像这样使用它时它会起作用 include mixins root pug 但是可以在包含中使用变量吗 这些都不起作用 include process env MIX
  • context="module" 在 Svelte 和 Sapper 中如何工作?

    当我使用 Sapper 构建项目时 每当我从服务器获取数据时 预加载函数都会在 script context module 内部声明 如下所示 根据document
  • 可以在cmd中启动多线程命令吗?

    我有大约 290 个文件需要在短时间内优化 当我做optipng png大约需要10分钟才能完成交易 然而当我这样做时optipng a png and optipng m png在两个单独的命令行中 它可以在 5 分钟内完成工作 现在有没
  • 如何以编程方式使 iOS 文本标签居中对齐?

    我想设置文本标签的对齐方式 该怎么做 我认为这些答案对您有帮助 正确的方法是 yourLabelName textAlignment NSTextAlignmentCenter 有关更多文档 您可以阅读以下内容 https develope
  • 如何从另一个 xml 模式扩展一个 xml 模式?

    我有一个类似于下面的 xml 文档 resources xml 以及相应的 xml 架构 resources xsd 该 xml 文档是手动维护的 即添加 删除 编辑资源元素 总共可能有 500 1000 个资源元素 每个资源可以是vari
  • INI 文件 - 通过 VBS 中的键名检索节名

    我想从 INI 文件中检索仅具有唯一键名称的部分名称 我的ini文件 Area 104 Title Central North America Local Scenery NAMC Layer 104 Active TRUE Require