Lire la suite mind_1220 sur le blog
:
La section INI contient la section et la clé de la valeur.
比如一个配置文件
SMSVote.ini
---------------------------------
[SMSVote]
Serveur=(local)
DB=SMSVote
Utilisateur=sa
Mot de passe=123
[DB2Vote]
Serveur=192.168.0.1
DB=DB2
Utilisateur=sa
Mot de passe=
---------------------------------
主体程序(方法) :
inifile.asp
-----------------------------------------------
<%
set IniFileDictionary = CreateObject("Scripting.Dictionary")
Sous IniFileLoad (ByVal FilSpc)
IniFileDictionary.RemoveAll
FilSpc = lcase(FilSpc)
si gauche(FilSpc, 1) = "p" alors
'Chemin physique
PhyPth = milieu (FilSpc, instr (FilSpc, "=") + 1)
autre
'Chemin virtuel
PhyPth = Server.MapPath(mid(FilSpc, instr(FilSpc, "=") + 1))
finir si
définir FilSys = CreateObject("Scripting.FileSystemObject")
définir IniFil = FilSys.OpenTextFile(PhyPth, 1)
faire sans IniFil.AtEndOfStream
StrBuf = IniFil.ReadLine
si StrBuf <> "" alors
'Il y a des données sur cette ligne
si gauche(StrBuf, 1) <> ";" alors
'Ce n'est pas un commentaire
si left(StrBuf, 1) = "[" alors
'C'est un en-tête de section
HdrBuf = milieu(StrBuf, 2, len(StrBuf) - 2)
autre
'C'est une valeur
StrPtr = instr(StrBuf, "=")
AltBuf = lcase(HdrBuf & " ¦" & gauche(StrBuf, StrPtr - 1))
faire pendant IniFileDictionary.Exists(AltBuf)
AltBuf = AltBuf & "_"
boucle
IniFileDictionary.Add AltBuf, milieu (StrBuf, StrPtr + 1)
finir si
finir si
finir si
boucle
IniFil.Fermer
définir IniFil = rien
définir FilSys = rien
Fin du sous-marin
Fonction IniFileValue(ByVal ValSpc)
faible ifarray
StrPtr = instr(ValSpc, " ¦")
ValSpc = lcase(ValSpc)
si StrPtr = 0 alors
'Ils veulent toute la section
StrBuf = ""
StrPtr = len(ValSpc) + 1
ValSpc = ValSpc + " ¦"
ifarray = IniFileDictionary.Keys
pour i = 0 à IniFileDictionary.Count - 1
si gauche(ifarray(i), StrPtr) = ValSpc alors
'C'est de la section
si StrBuf <> "" alors
StrBuf = StrBuf & "~"
finir si
StrBuf = StrBuf & ifarray(i) & "=" & IniFileDictionary(ifarray(i))
finir si
suivant
autre
"Ils veulent une valeur spécifique
StrBuf = IniFileDictionary(ValSpc)
finir si
IniFileValue = StrBuf
Fonction de fin
Fonction Chr(section,clé)
char1=IniFileValue(section)
Chaîne de recherche = char1
SearchChar = clé
MonPos=Instr(1,SearchString,SearchChar,1)
'char2=section+clé
char1=mid(char1,MyPos+len(key)+1,len(char1)-MyPos+1)
Chaîne de recherche = char1
RechercheChar = "~"
MonPos=Instr(1,SearchString,SearchChar,1)
si MyPos<>0 alors
char1=milieu(char1,1,MyPos-1)
autre
char1=milieu(char1,1)
finir si
Chr = char1
Fonction de fin
%>
如何使用?
看看这个:
conn.asp
-----------------------------------------------
<!--#include file="inifile.asp"-->
<%
en cas d'erreur, reprendre ensuite
dim conn, connstr, dbuid, dbpwd, nom de base de données, dbip
call IniFileLoad("virtual=SMSVote.ini") '配置文件的名字
dbuid=Chr("SMSVote","Utilisateur") 'Section="SMSVote",Key="Utilisateur"
dbpwd=Chr("SMSVote","Mot de passe") 'Section="SMSVote",Key="Mot de passe"
dbname=Chr("SMSVote","DB") 'Section="SMSVote",Key="DB"
dbip=Chr("SMSVote","serveur") 'Section="SMSVote",Key="serveur"
set conn=Server.CreateObject("adodb.Connection")
connstr="PROVIDER=SQLOLEDB;DATA SOURCE="&dbip&";UID="&dbuid&";PWD="&dbpwd&";DATABASE="&nom de base de données
conn.open connstr
'response.write conn
réponse.écriture erreur.description
%>