选择自 mind_1220 的 Blog 要求: 能够读取按照 INI文件的Section和Key来读出相应的Value。 比如一个配置文件 SMSVote.ini --------------------------------- [SMSVote] Server=(local) DB=SMSVote User=sa PassWord=123 [DB2Vote] Server=192.168.0.1 DB=DB2 User=sa PassWord= --------------------------------- 主体程序(方法) : 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) + 1 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 %> 如何使用? 看看这个: conn.asp ----------------------------------------------- <!--#include file="inifile.asp"--> <% on error resume next dim conn,connstr,dbuid,dbpwd,dbname,dbip call IniFileLoad("virtual=SMSVote.ini") '配置文件的名字 dbuid=Chr("SMSVote","User") 'Section="SMSVote",Key="User" dbpwd=Chr("SMSVote","PassWord") 'Section="SMSVote",Key="PassWord" dbname=Chr("SMSVote","DB") 'Section="SMSVote",Key="DB" dbip=Chr("SMSVote","server") 'Section="SMSVote",Key="server" set conn=Server.CreateObject("adodb.Connection") connstr="PROVIDER=SQLOLEDB;DATA SOURCE="&dbip&";UID="&dbuid&";PWD="&dbpwd&";DATABASE="&dbname conn.open connstr 'response.write conn response.write err.description %>
|