• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[昨夜星辰] 【源码】API操作配置文件(ini) [复制链接]

1#
函数名称:
ReadIni
从配置文件中获取指定小节指定键的值
参数定义:

Section 字符串型:小节名
Key 字符串型:键名
FilePath 字符串型:ini文件所在路径
返回值:
字符串型:读取到的内容
调用例子:
Text = ReadIni("s", "k", "C:\cfg.ini")

函数名称:
WriteIni
向配置文件中指定小节写入键及其值
参数定义:

Section 字符串型:小节名
Key 字符串型:键名
Value 字符串型:键值
FilePath 字符串型:ini文件所在路径
返回值:
整数型:非0为成功,否则为失败。
调用例子:
ret = WriteIni("s", "k", 1, "C:\cfg.ini")

函数名称:
OverwriteIni
向配置文件中指定小节覆盖写入键及其值(写入前会清空指定小节下所有键及其值)
参数定义:

Section 字符串型:小节名
Key 字符串型:键名和值,格式为"键=值",多个内容用"|"进行连接,比如"k1=1|k2=2|k3=3"
FilePath 字符串型:ini文件所在路径
返回值:
整数型:非0为成功,否则为失败。
调用例子:
ret = OverwriteIni("s", "k1=1|k2=2|k3=3", "C:\cfg.ini")

函数名称:
EnumIniSection
从配置文件中获取所有小节
参数定义:

FilePath 字符串型:ini文件所在路径
返回值:
字符串型:读取到的内容,多个内容用"|"连接,比如"s1|s2|s3"
调用例子:
Text = EnumIniSection("C:\cfg.ini")

函数名称:
EnumIniKey
从配置文件中获取指定小节所有键
参数定义:

Section 字符串型:小节名
FilePath 字符串型:ini文件所在路径
返回值:
字符串型:读取到的内容,多个内容用"|"连接,比如"k1|k2|k3"
调用例子:
Text = EnumIniKey("s", "C:\cfg.ini")

函数名称:
EnumIniKeyEx
从配置文件中获取指定小节所有键及其值
参数定义:

Section 字符串型:小节名
FilePath 字符串型:ini文件所在路径
返回值:
字符串型:读取到的内容,格式为"键=值",多个内容用"|"连接,比如"k1=1|k2=2|k3=3"
调用例子:
Text = EnumIniKeyEx("s", "C:\cfg.ini")

函数名称:
DeleteIni
从配置文件中删除指定小节的键及其值
参数定义:

Section 字符串型:小节名
Key 字符串型:键名,若键名为空则删除小节下所有键及其值
FilePath 字符串型:ini文件所在路径
返回值:
整数型:非0为成功,否则为失败。
调用例子:
ret = DeleteIni("s", "k", "C:\cfg.ini")
ret = DeleteIni("s", "", "C:\cfg.ini")

代码调试:
  1. Dim Section, Key, Value, FilePath
  2. Section = "section"
  3. Key = "key"
  4. Value = "value"
  5. FilePath = "C:\test.ini"
  6. TracePrint "写入结果:" & WriteIni(Section, Key, Value, FilePath)
  7. TracePrint "覆盖写入结果:" & OverwriteIni(Section, "key=123|abc=456", FilePath)
  8. TracePrint "读取结果:" & ReadIni(Section, Key, FilePath)
  9. TracePrint "枚举小节结果:" & EnumIniSection(FilePath)
  10. TracePrint "枚举键结果:" & EnumIniKey(Section, FilePath)
  11. TracePrint "枚举键和值结果:" & EnumIniKeyEx(Section, FilePath)
  12. TracePrint "删除键结果:" & DeleteIni(Section, Key, FilePath)
  13. TracePrint "删除所有键结果:" & DeleteIni(Section, "", FilePath)
复制代码
调试结果:
脚本 利用API操作配置文件.Q ,第11行:写入结果:1
脚本 利用API操作配置文件.Q ,第12行:覆盖写入结果:1
脚本 利用API操作配置文件.Q ,第13行:读取结果:123
脚本 利用API操作配置文件.Q ,第14行:枚举小节结果:section
脚本 利用API操作配置文件.Q ,第15行:枚举键结果:key|abc
脚本 利用API操作配置文件.Q ,第16行:枚举键和值结果:key=123|abc=456
脚本 利用API操作配置文件.Q ,第17行:删除键结果:1
脚本 利用API操作配置文件.Q ,第18行:删除所有键结果:1


全部源码:
  1. Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  2. Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpApplicationName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  3. Declare Function GetPrivateProfileSectionNames Lib "kernel32" Alias "GetPrivateProfileSectionNamesA" (ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  4. Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String) As Long
  5. Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpApplicationName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
  6. Dim Section, Key, Value, FilePath
  7. Section = "section"
  8. Key = "key"
  9. Value = "value"
  10. FilePath = "C:\test.ini"
  11. TracePrint "写入结果:" & WriteIni(Section, Key, Value, FilePath)
  12. TracePrint "覆盖写入结果:" & OverwriteIni(Section, "key=123|abc=456", FilePath)
  13. TracePrint "读取结果:" & ReadIni(Section, Key, FilePath)
  14. TracePrint "枚举小节结果:" & EnumIniSection(FilePath)
  15. TracePrint "枚举键结果:" & EnumIniKey(Section, FilePath)
  16. TracePrint "枚举键和值结果:" & EnumIniKeyEx(Section, FilePath)
  17. TracePrint "删除键结果:" & DeleteIni(Section, Key, FilePath)
  18. TracePrint "删除所有键结果:" & DeleteIni(Section, "", FilePath)
  19. Function ReadIni(Section, Key, FilePath) '从配置文件中获取指定小节指定键的值
  20. str = space(32767)
  21. Dim ret
  22. ret = GetPrivateProfileString(Section, Key, "", str, Len(str), FilePath)
  23. If ret = 0 Then
  24. ReadIni = ""
  25. Else
  26. ReadIni = Left(str, ret)
  27. End If
  28. End Function
  29. Function WriteIni(Section, Key, Value, FilePath) '向配置文件中指定小节写入键及其值
  30. WriteIni = WritePrivateProfileString(Section, Key, Value, FilePath)
  31. End Function
  32. Function OverwriteIni(Section, Key, FilePath) '向配置文件中指定小节覆盖写入键及其值
  33. Key = Replace(Key, "|", Chr(0))
  34. Key = Key & Chr(0)
  35. OverwriteIni = WritePrivateProfileSection(Section, Key, FilePath)
  36. End Function
  37. Function EnumIniSection(FilePath) '从配置文件中获取所有小节
  38. str = space(32767)
  39. Dim ret
  40. ret = GetPrivateProfileSectionNames(str, Len(str), FilePath)
  41. If ret = 0 Then
  42. EnumIniSection = ""
  43. Else
  44. str = Replace(Left(str, InStr(str, Chr(0) & Chr(0))), Chr(0), "|")
  45. EnumIniSection = Left(str, Len(str) - 1)
  46. End If
  47. End Function
  48. Function EnumIniKey(Section, FilePath) '从配置文件中获取指定小节所有键
  49. str = space(32767)
  50. Dim ret
  51. ret = GetPrivateProfileString(Section, vbNullString, "", str, Len(str), FilePath)
  52. If ret = 0 Then
  53. EnumIniKey = ""
  54. Else
  55. str = Replace(Left(str, InStr(str, Chr(0) & Chr(0))), Chr(0), "|")
  56. EnumIniKey = Left(str, Len(str) - 1)
  57. End If
  58. End Function
  59. Function EnumIniKeyEx(Section, FilePath) '从配置文件中获取指定小节所有键及其值
  60. str = space(32767)
  61. Dim ret
  62. ret = GetPrivateProfileSection(Section, str, Len(str), FilePath)
  63. If ret = 0 Then
  64. EnumIniKeyEx = ""
  65. Else
  66. str = Replace(Left(str, InStr(str, Chr(0) & Chr(0))), Chr(0), "|")
  67. EnumIniKeyEx = Left(str, Len(str) - 1)
  68. End If
  69. End Function
  70. Function DeleteIni(Section, Key, FilePath) '从配置文件中删除指定小节的键及其值
  71. If Key = "" Then
  72. DeleteIni = WritePrivateProfileString(Section, vbNullString, vbNullString, FilePath)
  73. Else
  74. DeleteIni = WritePrivateProfileString(Section, Key, vbNullString, FilePath)
  75. End If
  76. End Function
复制代码



最后编辑昨夜星辰 最后编辑于 2022-10-02 14:52:39
近期制作:
传奇私服各种反外挂插件版本挂机软件,可教可售
原神加速、连发辅助工具
天下3自动钓大鱼辅助工具

承接脚本定制,点击下方联系
QQ:250039815

交流群:101296478

2#

沙发

3#

学习啦!~感谢楼主分享!

4#

11111111111111111

5#

找了很久

6#

学习了一个

7#

回复有美女

8#

累死了,不知道为什么我电脑上原生读取文件内容命令无法识别中文路径。我来看看楼主的

9#

感谢分享

10#

学习啦!~感谢楼主分享!

11#

恭喜你

12#

怎么做到的?DeleteIni

13#

学习啦!~感谢楼主分享!

14#

sas asasas

15#

感谢楼主分享!

16#

学习下

17#

test.ini
学习一下

18#

看看吧

19#

怎么调用多个键值呢

点评

昨夜星辰  使用下面两个函数,可以多个读取和写入。
EnumIniKeyEx
OverwriteIni  发表于 2023/5/14 12:32:12

20#

学习啊 学习一下啊!

发新话题 回复该主题