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.mzph.cn/news/140695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现Debian工控电脑USB接口安全管控

Debian 作为工控电脑操作系统具有稳定性、安全性、自定义性和丰富的软件包等优势&#xff0c;适用于要求高度可靠性和安全性的工控应用。 Debian 作为工控电脑操作系统在工业控制领域有很大优势&#xff0c;包括&#xff1a; 稳定性&#xff1a;Debian 的发布版以其稳定性而闻…

find和grep命令的简单使用

find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find find 命令在指定的目录下查找对应的文件。 find [path] [expression]● path 是要查找的目录路径&#xff0c;可以是一个目录或文件名…

MS321V/358V/324V低压、轨到轨输入输出运放

MS321V/MS358V/MS324V 是单个、两个和四个低压轨到轨输 入输出运放&#xff0c;可工作在幅度为 2.7V 到 5V 的单电源或者双电源条件 下。在低电源、空间节省和低成本应用方面是最有效的解决方案。 这些放大器专门设计为低压工作&#xff08; 2.7V 到 5V &#xff09;…

Electron-vue出现GET http://localhost:9080/__webpack_hmr net::ERR_ABORTED解决方案

GET http://localhost:9080/__webpack_hmr net::ERR_ABORTED解决方案 使用版本解决方案解决总结 使用版本 以下是我解决此问题时使用的electron和vue等的一些版本信息 【附】经过测试 electron 的版本为 13.1.4 时也能解决 解决方案 将项目下的 .electron-vue/dev-runner.js…

为什么要用“交叉熵”做损失函数

大家好啊&#xff0c;我是董董灿。 今天看一个在深度学习中很枯燥但很重要的概念——交叉熵损失函数。 作为一种损失函数&#xff0c;它的重要作用便是可以将“预测值”和“真实值(标签)”进行对比&#xff0c;从而输出 loss 值&#xff0c;直到 loss 值收敛&#xff0c;可以…

相对路径和绝对路径

来源 绝对路径&#xff0c;从根目录为起点到某一个目录的路径&#xff1b; 相对路径&#xff0c;从一个目录为起点到另外一个的目录的路径。 例如&#xff1a; ┍ A文件夹 C -| ┕ B文件夹 绝对路径&#xff1a; C:\A文件夹 相对路径&#xff08;如果你在A文件夹时&#xf…

【Objective-C】Objective-C汇总

方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…

Python .exe 打包工具

PyInstaller 是一个非常强大的 Python 包&#xff0c;用于将 Python 程序打包成可执行文件&#xff08;.exe 文件&#xff09;。下面是如何安装 PyInstaller 的详细教程&#xff1a; 步骤 1&#xff1a; 首先&#xff0c;打开你的命令行或终端窗口。 步骤 2&#xff1a; 确保…

Python数据结构:元组(Tuple)详解

1.介绍和基础操作 Python中的元组&#xff08;Tuple&#xff09;是不可变有序序列&#xff0c;可以容纳任意数据类型&#xff08;包括数字、字符串、布尔型、列表、字典等&#xff09;的元素&#xff0c;通常用圆括号() 包裹。与列表&#xff08;List&#xff09;类似&#xff…

擎创动态 | 再获上海区政府肯定,擎创科技被评为年度优秀高新技术企业

11月6日&#xff0c;上海市静安区副区长张慧和市北高新集团总裁陈军一行来到擎创科技调研指导&#xff0c;由擎创科技高管张健和陈莹陪同交流。 陈莹女士首先向副区长一行详细介绍了擎创科技的发展现状、落地实践效益以及未来的规划布局。在公司的成长过程中&#xff0c;得到静…

力扣labuladong——一刷day27

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣870. 优势洗牌 田忌赛马的升级版&#xff0c;nums1表示田忌的马&#xff0c;nums2表示齐王的马&#xff0c;nums2的下标表示出场顺序 前言 一、力扣870…

Windows 10 下使用Visual Studio 2017 编译CEF SDK

1.下载CEF SDK 由于需要跑在32位的机器&#xff0c;所以选择下载32位的SDKCEF Automated Builds 选择 Current Stable Build (Preferred) &#xff0c;这是当前稳定版本&#xff0c;CEF版本118 下载成功解压 2.下载编译工具 CMake 下载地址&#xff1a;CMake 配置CMake指向…

python pip安装特定包,网络慢的问题

文件requirements.txt httpx0.24.0 Pillow9.5.0 playwright1.33.0 tenacity8.2.2 tornado6.3.2 PyExecJS1.5.1 opencv-python4.7.0.72 tortoise-orm[asyncmy]0.19.3 aerich0.7.2 numpy~1.24.4 redis~4.6.0 Pydantic1.7将文件放入任意一个目录下 cd 到该目录下执行 while read…

提升SDK广告填充率的有效方法

提升SDK广告填充率的有效方法 在移动应用开发中&#xff0c;提高SDK广告填充率是一个关键目标&#xff0c;因为它直接影响到广告收益。广告填充率是指广告请求中实际被填充广告的比例。提高填充率可以帮助开发者最大化广告收入&#xff0c;以下是一些有效的方法来实现这一目标。…

Containerd接入Harbor仓库

在使用容器时&#xff0c;避免不了会使用到私有仓库&#xff0c;一般都是采用 harbor 作为私有仓库&#xff0c;docker 对接 harbor 仓库非常简单&#xff0c;哪 containerd 如何对接 harbor 呢&#xff1f; 在内网使用 harbor 根据个人习惯&#xff0c;一般都是非 http 并且是…

PHP 服装销售管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 服装销售管理系统是一套完善的web设计系统mysql数据库 &#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php服装销售管理系统1 二、功能介绍 (1)员工管理&#xff1a;对员工信息…

卷积神经网络中参数量的计算原理及方法

手动计算参数量: 1. 卷积层参数计算方法: 参数量计算公式 卷积核高度 * 卷积核宽度 * 输入层通道数 * 输出层通道数 bias(输出层通道数) 注意:池化层没有参数(只是在已知数据区域里求个最大值)输入层通道数就是上层的卷积核数量 输出层通道数等于卷积核个数:输入层通道数经过…

设计模式 -- 责任链模式(Chain of Responsibility Pattern)

责任链模式&#xff1a;和上一篇策略模式一样也是行为型模式。创建一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种模式中&#xff0c;通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求&#xff0c;那么它…

jenkins CSV编码导致乱码问题解决

问题&#xff1a;生产报告会乱码的问题&#xff0c;一般是有编码格式引起的。我遇到的问题是&#xff0c;jmeter需要读取csv的数据作为参数。但是我们并不知道csv保存是什么编码格式&#xff0c;有可能不是utf-8的编码格式&#xff0c;所以会导致中文乱码的问题 解决方案&#…

每日一练:Python中如何使用enumerate 函数创建带索引的元组

enumerate函数是 Python 中用于遍历可迭代对象并返回索引和对应元素的内置函数。它可以方便地用于创建带索引的元组。以下是一个使用enumerate 函数创建带索引的元组的示例&#xff1a; # 创建一个列表 fruits [apple, banana, orange, grape]# 使用 enumerate 函数创建带索引…