用ASP读INI配置文件的函数2010-01-11要求:能够读取按照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 %>