選択自 mind_1220 のブログ
要求:
INI ファイルのセクションとキーに基づいて、対応する値を出力できます。
比類のない構成ファイル
SMSVote.ini
---------------------------------
[SMS投票]
サーバー=(ローカル)
DB=SMS投票
ユーザー=sa
パスワード=123
[DB2投票]
サーバー=192.168.0.1
DB=DB2
ユーザー=sa
パスワード=
---------------------------------
本体程序(方法) :
inifile.asp
-----------------------------------------------
<%
set IniFileDictionary = CreateObject("Scripting.Dictionary")
Sub IniFileLoad(ByVal FilSpc)
IniFileDictionary.RemoveAll
FilSpc = lcase(FilSpc)
if left(FilSpc, 1) = "p" then
'物理パス
PhyPth = Mid(FilSpc, instr(FilSpc, "=) + 1)
それ以外
'仮想パス
PhyPth = Server.MapPath(mid(FilSpc, instr(FilSpc, "=") + 1))
終了する場合
set FilSys = CreateObject("Scripting.FileSystemObject")
set IniFil = FilSys.OpenTextFile(PhyPth, 1)
IniFil.AtEndOfStream ではないときに実行します
StrBuf = IniFil.ReadLine
if StrBuf <> "" then
'この行にデータがあります
if left(StrBuf, 1) <> ";" それから
「それはコメントではありません
if left(StrBuf, 1) = "[" then
'セクションヘッダーです
HdrBuf = mid(StrBuf, 2, len(StrBuf) - 2)
それ以外
「それは価値観だ」
StrPtr = instr(StrBuf, "=)
AltBuf = lcase(HdrBuf & "|" & left(StrBuf, StrPtr - 1))
IniFileDictionary.Exists(AltBuf) 中に行う
AltBuf = AltBuf & "_"
ループ
IniFileDictionary.Add AltBuf、mid(StrBuf、StrPtr + 1)
終了する場合
終了する場合
終了する場合
ループ
IniFil.Close
IniFil = 何も設定しない
FilSys = 何も設定しない
エンドサブ
関数 IniFileValue(ByVal ValSpc)
薄暗い場合
StrPtr = instr(ValSpc, "|")
ValSpc = lcase(ValSpc)
StrPtr = 0の場合
「彼らはセクション全体を望んでいる」
StrBuf = ""
StrPtr = len(ValSpc) + 1
ValSpc = ValSpc + "|"
ifarray = IniFileDictionary.Keys
for i = 0 ~ IniFileDictionary.Count - 1
if left(ifarray(i), StrPtr) = ValSpc then
'これはセクションからのものです
if StrBuf <> "" then
StrBuf = StrBuf & "~"
終了する場合
StrBuf = StrBuf & ifarray(i) & "= & IniFileDictionary(ifarray(i))
終了する場合
次
それ以外
'彼らは特定の値を望んでいます
StrBuf = IniFileDictionary(ValSpc)
終了する場合
IniFileValue = StrBuf
終了機能
関数 Chr(セクション、キー)
char1=IniFileValue(セクション)
検索文字列 =char1
SearchChar = キー
MyPos=Instr(1,検索文字列,検索文字,1)
'char2=セクション+キー
char1=mid(char1,MyPos+len(key)+1,len(char1)-MyPos+1)
検索文字列 =char1
検索文字 = "~"
MyPos=Instr(1,検索文字列,検索文字,1)
MyPos<>0 の場合
char1=mid(char1,1,MyPos-1)
それ以外
char1=mid(char1,1)
終了する場合
Chr = char1
終了関数
%>
どのように使用しますか?
これを見てください:
conn.asp
-----------------------------------------------
<!--#include file="inifile.asp"-->
<%
エラー時は次から再開
ディム conn、connstr、dbuid、dbpwd、dbname、dbip
call IniFileLoad("virtual=SMSVote.ini") '構成ファイルの名前
dbuid=Chr("SMSVote","ユーザー") 'Section="SMSVote",Key="ユーザー"
dbpwd=Chr("SMSVote","PassWord") 'Section="SMSVote",Key="PassWord"
dbname=Chr("SMSVote","DB") 'セクション="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
応答.書き込みエラー.説明
%>