INI是微软Windows操作系统中的文件扩展名。这些字母表示初始化。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。ini文件可以存储很多数据,用来配置应用软件以实现不同用户的要求,那如何用ASP来读取ini文件呢?聚友提供一段代码,可以通过这段代码来实现读取ini文件,代码如下:
<%
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
%>
将上面的代码保存为inifile.asp,用如下样子的代码来读取ini,
<!–#include file="inifile.asp"–>
<%
call IniFileLoad("test.ini")
‘ 设定包含文件的存放路径
StrBuf = IniFileValue("OEMFiles|OEMDriverFile1")
response.write strbuf & now()
%>
未经允许不得转载:聚友 » ASP读取ini文件