ASP嵌套VB代码读取ini配置文件 博客分类: VB ASP .NET VBASPini
程序员文章站
2024-03-21 22:22:28
...
要求:
能够读取按照 INI文件的Section和Key来读出相应的Value。
比如一个配置文件
mail.ini
---------------------------------
[MailInfo]
user=123
pwd=321
server=smtp.163.com
---------------------------------
主体程序(方法) :
inifile.asp
-----------------------------------------------
<% set IniFileDictionary = CreateObject("Scripting.Dictionary") Sub IniFileLoad(ByVal FilSpc) IniFileDictionary.RemoveAll FilSpc = lcase(FilSpc) if left(FilSpc, 1) = "p" then 'Physical path PhyPth = mid(FilSpc, instr(FilSpc, "=") + 1) else 'Virtual path PhyPth = Server.MapPath(mid(FilSpc, instr(FilSpc, "=") + 1)) end if set FilSys = CreateObject("Scripting.FileSystemObject") set IniFil = FilSys.OpenTextFile(PhyPth, 1) do while not IniFil.AtEndOfStream StrBuf = IniFil.ReadLine if StrBuf <> "" then 'There is data on this line if left(StrBuf, 1) <> ";" then 'It's not a comment if left(StrBuf, 1) = "[" then 'It's a section header HdrBuf = mid(StrBuf, 2, len(StrBuf) - 2) else 'It's a value StrPtr = instr(StrBuf, "=") AltBuf = lcase(HdrBuf & " |" & left(StrBuf, StrPtr - 1)) do while IniFileDictionary.Exists(AltBuf) AltBuf = AltBuf & "_" loop IniFileDictionary.Add AltBuf, mid(StrBuf, StrPtr + 1) end if end if end if loop IniFil.Close set IniFil = nothing set FilSys = nothing End Sub Function IniFileValue(ByVal ValSpc) dim ifarray StrPtr = instr(ValSpc, " |") ValSpc = lcase(ValSpc) if StrPtr = 0 then 'They want the whole section StrBuf = "" StrPtr = len(ValSpc) + 3 ValSpc = ValSpc + " |" ifarray = IniFileDictionary.Keys for i = 0 to IniFileDictionary.Count - 1 if left(ifarray(i), StrPtr) = ValSpc then 'This is from the section if StrBuf <> "" then StrBuf = StrBuf & "~" end if StrBuf = StrBuf & ifarray(i) & "=" & IniFileDictionary(ifarray(i)) end if next else 'They want a specific value StrBuf = IniFileDictionary(ValSpc) end if IniFileValue = StrBuf End Function Function Chr(section,key) char1=IniFileValue(section) SearchString =char1 SearchChar = key MyPos=Instr(1,SearchString,SearchChar,1) 'char2=section+key char1=mid(char1,MyPos+len(key)+1,len(char1)-MyPos+1) SearchString =char1 SearchChar = "~" MyPos=Instr(1,SearchString,SearchChar,1) if MyPos<>0 then char1=mid(char1,1,MyPos-1) else char1=mid(char1,1) end if Chr = char1 End Function %>
如何使用?
-----------------------------------------------
<!--#include file="inifile.asp"--> <% 'virtual:表示服务器路径 Physical:表示物理路径 mail.ini : 配置文件名称 call IniFileLoad("virtual=mail.ini") 'MailInfo:节点名称 server: 配置文件中的KEY serverStr = Chr("MailInfo","server") Response.Write("<br/>serverStr:"&serverStr) %>
上一篇: 使用Java编写第一个接口自动化程序
下一篇: 你是因为什么理由让你想从事软件测试?