ASP网站制作之用ASP读INI设置文件的函数
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。选择自mind_1220的Blog请求:
可以读取依照INI文件的Section和Key来读出响应的Value。
好比一个设置文件
SMSVote.ini
---------------------------------
Server=(local)
DB=SMSVote
User=sa
PassWord=123
Server=192.168.0.1
DB=DB2
User=sa
PassWord=
---------------------------------
主体程序(办法):
inifile.asp
-----------------------------------------------
<%
setIniFileDictionary=CreateObject("Scripting.Dictionary")
SubIniFileLoad(ByValFilSpc)
IniFileDictionary.RemoveAll
FilSpc=lcase(FilSpc)
ifleft(FilSpc,1)="p"then
Physicalpath
PhyPth=mid(FilSpc,instr(FilSpc,"=")+1)
else
Virtualpath
PhyPth=Server.MapPath(mid(FilSpc,instr(FilSpc,"=")+1))
endif
setFilSys=CreateObject("Scripting.FileSystemObject")
setIniFil=FilSys.OpenTextFile(PhyPth,1)
dowhilenotIniFil.AtEndOfStream
StrBuf=IniFil.ReadLine
ifStrBuf""then
Thereisdataonthisline
ifleft(StrBuf,1)";"then
Itsnotacomment
ifleft(StrBuf,1)="["then
Itsasectionheader
HdrBuf=mid(StrBuf,2,len(StrBuf)-2)
else
Itsavalue
StrPtr=instr(StrBuf,"=")
AltBuf=lcase(HdrBuf&"|"&left(StrBuf,StrPtr-1))
dowhileIniFileDictionary.Exists(AltBuf)
AltBuf=AltBuf&"_"
loop
IniFileDictionary.AddAltBuf,mid(StrBuf,StrPtr+1)
endif
endif
endif
loop
IniFil.Close
setIniFil=nothing
setFilSys=nothing
EndSub
FunctionIniFileValue(ByValValSpc)
dimifarray
StrPtr=instr(ValSpc,"|")
ValSpc=lcase(ValSpc)
ifStrPtr=0then
Theywantthewholesection
StrBuf=""
StrPtr=len(ValSpc)+1
ValSpc=ValSpc+"|"
ifarray=IniFileDictionary.Keys
fori=0toIniFileDictionary.Count-1
ifleft(ifarray(i),StrPtr)=ValSpcthen
Thisisfromthesection
ifStrBuf""then
StrBuf=StrBuf&"~"
endif
StrBuf=StrBuf&ifarray(i)&"="&IniFileDictionary(ifarray(i))
endif
next
else
Theywantaspecificvalue
StrBuf=IniFileDictionary(ValSpc)
endif
IniFileValue=StrBuf
EndFunction
FunctionChr(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)
ifMyPos0then
char1=mid(char1,1,MyPos-1)
else
char1=mid(char1,1)
endif
Chr=char1
EndFunction
%>
怎样利用?
看看这个:
conn.asp
-----------------------------------------------
<!--#includefile="inifile.asp"-->
<%
onerrorresumenext
dimconn,connstr,dbuid,dbpwd,dbname,dbip
callIniFileLoad("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"
setconn=Server.CreateObject("adodb.Connection")
connstr="PROVIDER=SQLOLEDB;DATASOURCE="&dbip&";UID="&dbuid&";PWD="&dbpwd&";DATABASE="&dbname
conn.openconnstr
response.writeconn
response.writeerr.description
%>
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
页:
[1]