matlab读取ini文件文本,VBA、VBS读写INI文件

最近要编写个vbs小程序,但vbs程序的调试很麻烦,所以考虑用Excel的VBA调试,毕竟vbs和vba还是很相似的。一个要实现的功能就是从ini文件中读取信息,网上找到了一些很好的代码,这里收藏了!

功能实现函数如下

Private Declare Function GetPrivateProfileString Lib "kernel32"

_

Alias

"GetPrivateProfileStringA" _

(ByVal

lpApplicationName As String, _

ByVal

lpKeyName As Any, _

ByVal

lpDefault As String, _

ByVal

lpReturnedString As String, _

ByVal nSize

As Long, _

ByVal

lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib

"kernel32" _

Alias

"WritePrivateProfileStringA" _

(ByVal

lpApplicationName As String, _

ByVal

lpKeyName As Any, _

ByVal

lpString As Any, _

ByVal

lpFileName As String) As Long

'********************************************************************

'* Sub : ReadFromIni and

WriteIntoIni '*

'* Purpose: 读写INI文件

'*

'********************************************************************

Public Function ReadFromIni(ByVal IniFile As String, ByVal Section

As String, ByVal Key As String, ByVal DefaultValue As String) As

String

Dim strRtn As String

strRtn = Space(256)

Dim lngRtn As Long

lngRtn = GetPrivateProfileString(Section, Key, DefaultValue,

strRtn, 255, IniFile)

If lngRtn > 0 Then

strRtn = Trim(strRtn)

ReadFromIni = Mid(strRtn, 1, Len(strRtn) - 1)

Else

ReadFromIni = DefaultValue

End If

End Function

Public Sub WriteIntoIni(ByVal IniFile As String, ByVal Section

As String, ByVal Key As String, ByVal Value As String)

Dim lngRtn As Long

lngRtn = WritePrivateProfileString(Section, Key, Value,

IniFile)

If lngRtn > 0 Then

Else

Call Err.Raise(-1, "IniFileUtil.WriteIntoIni", "Failed to

write")

End If

End Sub

函数使用测试如下

Sub Main()

Dim strIniFile As String

strIniFile = ActiveWorkbook.Path &

"\example.ini"

Dim strSection As String

strSection = "Application"

Dim strKey As String

strKey = "Version"

Dim strValue As String

strValue = "1.0.30"

Call WriteIntoIni(strIniFile, strSection, strKey, strValue)

strValue = ReadFromIni(strIniFile, strSection, strKey, "")

MsgBox "Version = " & strValue, vbInformation

End Sub

运行上面的函数,程序会在当前目录生成一个example.ini文件,并向里面写入如下信息

[Application]

Version=1.0.30

然后再读取显示出来,如下

a4c26d1e5885305701be709a3d33442f.png

不过很坑爹的是这个函数貌似在vbs中还运行不了,由于时间比较紧,所以又找了其他的代码实现。建立如下vbs脚本,从刚才的example.ini文件中读取信息

' 读INI文件

strIniFile = ".\example.ini"

strTemp = ReadINI(strIniFile, "Application", "Version")

MsgBox "Version = " & strTemp, vbInformation

' read函数

Function ReadINI(FilePath, Bar,

PrimaryKey)

Dim fso, sReadLine, i, j, ss

Set fso = CreateObject("Scripting.FileSystemObject")

Set IniFile = fso.opentextfile(FilePath, 1)

Do Until IniFile.atendofstream

sReadLine =

IniFile.readline

If sReadLine

= "" Then

IniFile.skipline

ElseIf

Trim(sReadLine) = "[" & Bar & "]"

Then '找到小节名

'查找该小节名下的键名

Do Until IniFile.atendofstream

sReadLine =

IniFile.readline '读取小节名后的行

j = InStr(sReadLine, "=")

If j > 0

Then '小节名后的文本行存在

If InStr(Left(sReadLine, j), PrimaryKey) > 0

Then '从"="左边字符串找到键名

ss = Trim(Right(sReadLine, Len(sReadLine) - InStr(sReadLine, "=")))

'读取等号后的部分

Exit Do

End If

End If

Loop

End If

Loop

IniFile.Close

Set fso = Nothing

ReadINI = ss

End Function

结果相同

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值