快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

大灰狼的ASP工具箱??用ASP读INI配置文件的函数

要求:
能够读取按照 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 & " &brvbar;" & 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, " &brvbar;")
ValSpc = lcase(ValSpc)
if StrPtr = 0 then
\\\'They want the whole section
StrBuf = ""
StrPtr = len(ValSpc) + 1
ValSpc = ValSpc + " &brvbar;"
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
%>
返回类别: 教程
上一教程: 实验RECORDSET.MOVENEXT,RECORDSET.PREVIOUS,RECORSET...等移动记录
下一教程: ASP程序密码验证问题 (MS,缺陷)

您可以阅读与"大灰狼的ASP工具箱??用ASP读INI配置文件的函数"相关的教程:
· 用ASP读INI配置文件的函数
· 大灰狼的ASP工具箱??XMLHTTP的应用,获得远程的文件,获得远程HTML文件源码
· 大灰狼的ASP工具箱??CDONTS和JMAIL的使用
· 大灰狼的ASP工具箱??防盗链、判定星期几
· 大灰狼的ASP工具箱??自动获得远程图片
    微笑服务 优质保证 索取样品