当前位置: 首页 > news >正文

GetPrivateProfileSection使用

基本语法

GetPrivateProfileSection 是一个 Windows API 函数,用于检索指定 INI 文件中特定节的所有键值对。它可以读取INI文件中指定节所有的键值对并将结果存储在指定的缓冲区中。

以下是 GetPrivateProfileSection 函数的基本语法:

DWORD GetPrivateProfileSection(LPCWSTR lpAppName,LPWSTR  lpReturnedString,DWORD   nSize,LPCWSTR lpFileName
);

参数说明:

  1. lpAppName:INI 文件中要读取的节名。如果为 NULL 则返回所有节。
  2. lpReturnedString:指向用于接收键值对字符串的缓冲区的指针。
  3. nSize:指定缓冲区大小,以字符为单位。
  4. lpFileName:INI 文件路径和文件名。

此函数返回一个 DWORD 类型的值,指定写入缓冲区的字节数(以字节为单位),不包括 NULL 结尾字符。

GetPrivateProfileSection 函数读取指定节中所有的键值对,每个键值对之间是用 NULL 字符分隔的。因此,lpReturnedString 缓冲区中的字符串格式为:key1=value1\0key2=value2\0…\0keyn=valuen\0\0。

举例说明:

以下是使用 GetPrivateProfileSection 函数检索 INI 文件中特定节的键值对的两个场景示例:

假设有一个 INI 文件 “test.ini” 包含以下内容:

[Section1]
Key1=Value1
Key2=Value2[Section2]
Key3=Value3
Key4=Value4
例1:读取 INI 文件中特定节的所有键值对

以下示例演示了如何使用 GetPrivateProfileSection 函数检索 “test.ini” 文件中 “Section2” 节的所有键值对,并将结果存储在缓冲区中:

Imports System.Runtime.InteropServicesModule Module1<DllImport("kernel32.dll", CharSet:=CharSet.Unicode)>Public Function GetPrivateProfileSection(ByVal lpAppName As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As IntegerEnd FunctionSub Main()Dim filename As String = "test.ini"Dim section As String = "Section2"Dim buffer As New System.Text.StringBuilder(2048)Dim size As Integer = GetPrivateProfileSection(section, buffer, 2048, filename)If size <= 0 ThenConsole.WriteLine("Failed to read section.")ReturnEnd IfDim result As String = buffer.ToString().Substring(0, size)Console.WriteLine("Section2: " & result)End Sub
End Module

在上面的代码示例中,我们指定了要读取的 INI 文件名 “test.ini” 和要读取的节名 “Section2”。缓冲区大小为 2048 个字符。当 GetPrivateProfileSection 函数成功调用后,我们使用输出流在控制台窗口中显示读取到的结果字符串。

输出结果将会是:

Section2: Key3=Value3
Key4=Value4

例2: 枚举INI文件中所有的节名和键值

以下示例演示了如何枚举 “test.ini” 文件中所有的节(Section1和Section2)和它们的键值对,并将结果存储在缓冲区中:

Imports System.Runtime.InteropServicesModule Module1<DllImport("kernel32.dll", CharSet:=CharSet.Unicode)>Public Function GetPrivateProfileSection(ByVal lpAppName As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As IntegerEnd FunctionSub Main()Dim filename As String = "test.ini"Dim buffer As New System.Text.StringBuilder(2048)Dim size As Integer = GetPrivateProfileSection(Nothing, buffer, 2048, filename)If size <= 0 ThenConsole.WriteLine("Failed to read INI file.")ReturnEnd IfDim result As String = buffer.ToString().Substring(0, size)Console.WriteLine(result)End Sub
End Module

在上面的代码示例中,我们没有指定要读取的节名,因此 GetPrivateProfileSection 函数将返回 “test.ini” 文件中所有的节名和它们的键值对。缓冲区大小为 2048 个字符。当 GetPrivateProfileSection 函数成功调用后,我们使用输出流在控制台窗口中显示读取到的结果字符串。

输出结果将会是:

Section1
Key1=Value1
Key2=Value2
Section2
Key3=Value3
Key4=Value4

请注意,这是用于 Windows 平台的 API 函数。如果你需要在 VBA 中使用 INI 文件,请使用内置函数 GetPrivateProfileString 、 GetAllSettings 或 GetSetting。

GetPrivateProfileString 使用请参照:GetPrivateProfileString 使用说明






大鹏一日同风起 扶摇直上九万里 加油!!!!

End

http://www.lryc.cn/news/227155.html

相关文章:

  • Ubuntu20.04 安装 Matlab R2021a
  • 让35岁程序员精力充沛的方法
  • 01:2440----点灯大师
  • 初步了解 RabbitMQ
  • Faster-RCNN and Mask-RCNN框架解析
  • 大数据可视化数据大屏可视化模板【可视化项目案例-05】
  • Vue Router active-class 属性
  • Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL
  • CS224W6.2——深度学习基础
  • Linux c/c++服务器开发实践
  • 2023年11月在线IDE流行度最新排名
  • 视频批量剪辑:视频嵌套合并实战指南,剪辑高手速成秘籍
  • 每天一点python——day66
  • 搭建产品帮助中心其实很简单,方法都在这了!
  • (离散数学)命题及命题的真值
  • 计算机组成原理之处理器(流水线)
  • 国际阿里云:云服务器灾备方案!!!
  • 计算机msvcp140.dll重新安装的四个解决方法,专门解决dll文件丢失问题的方法
  • 提莫的idea的bug是真滴多
  • STM32笔记—EXTI外部中断
  • 小程序分享当前页面
  • 10. GPIO中断
  • 【离散数学必刷题】谓词逻辑(第二章 左孝凌版)刷完包过!
  • SpringBoot系列-2 自动装配
  • vue3+ts 前端实现打印功能
  • egg.js sequelize数据库操作配置
  • vagrant安装k8s集群
  • ArcGIS进阶:水源涵养功能分级评价操作
  • 数据结构与算法 | 第四章:字符串
  • 2023-11-rust-struct