Active Server Page。.NETでない方(VBscript)のお話。 クッキーデータを保存するResponseオブジェクトを用いる。データの保存は以下のようにキー単位で行う方法と、一つの文字列として保存する方法がある。
Response.Cookies("MyCookie")("pass") = "123" Response.Cookies("MyCookie") = "id=ABC&pass=123" 詳細設定
Path設定をサボると、レスポンスを返した階層が自動的に設定されるようだ。これが原因でせっかくのCookieが有効でなくなってしまうケースもあるので注意。 NetscapeのCookieマネージャ機能を使うと、生成されるCookieの情報がリアルタイムに見られる。開発には便利だと思う。 データを取得するRequestオブジェクトを用いる。
pass = Request.Cookies("MyCookie")("pass") SessionオブジェクトWebサーバとクライアントの間の接続(セッション)を保持するオブジェクト。Cookieが自動的に作成され、クライアント毎に一意な値が振られる(IISを再起動しない限り重なることは無い)。 実行時はその値を元にクライアントとの接続状態を保持しているオブジェクトを、Sessionオブジェクトとして自動的に選択される。 Sessionオブジェクトには情報を保存しておくことが出来るので、複数のページを跨いでユーザの状態を管理することが可能となる。 情報を保持するKeyとValueの感覚でセッションに属する情報を保存しておくことができる。書式は以下の2通り。
Session("name") = "komina" 情報を取り出す時は格納時と同じで、そのまま記述すればいい。
Response.Write( Session("name") ) 情報を削除する時は、Removeメソッドを用いる。
全ての情報を削除する時は、RemoveAllメソッドを用いる。
明示的な破棄Abandonメソッドを用いると、現在のセッション情報を破棄できる。 このメソッドを用いない場合は、タイムアウトで破棄される。 ※破棄はページの最後で行われる。 タイムアウトの設定Timeoutプロパティに値を設定することで、セッションの保持期間を任意に設定することが出来る。
セッションIDSessionIDプロパティにセッションIDが入っている。読み出し専用。 ウンチク
Responseオブジェクトブラウザへ送信するデータを扱うオブジェクト。 出力引数で指定した文字列がブラウザへ出力される。
無かったことにする今まで出力してきた内容を消去する。
ページがキャッシュされないようにする
|
表記 | 意味 |
vbCr | 0x0d |
vbCrLf | 0x0d 0x0a |
vbLf | 0x0a |
vbTab | 0x09 |
vbNullString | 0x00 |
エスケープ
abc = "Hello. ""abc!"" Bye."
Replace関数
Replace(strString, strFind, strRep [, lngStart, lngCnt, lngCmp])
strString | 対象となる文字列 |
strFind | 置換前の文字列 |
strRep | 置換後の文字列 |
lngStart | 検索開始位置(省略可能) |
lngCnt | 置換回数(省略時は-1となり可能な限り置換する) |
lngCmp | 文字列比較のモード。0でバイナリ、1でテキストモード。(省略可能) |
kekka = Replace(moto, "-", "")
- HTMLサニタイジング
Function SaniTizing(vStr)
vStr = Replace(vStr, "&", "&") '[&] → &
vStr = Replace(vStr, "<", "<") '[<] → <
vStr = Replace(vStr, ">", ">") '[>] → >
vStr = Replace(vStr, """", """) '["] → "
vStr = Replace(vStr, "'", "'") '['] → '
vStr = Replace(vStr, vbCrlf, "<br>") '[vbCrlf] → <br>;
SaniTizing = vStr
En
d Function
文字列検索
InStr
関数を用いる。- 第一引数に対象文字列、第二引数に検索文字列を渡す。
- 文字単位ではなくバイト単位で検索する場合は、
InStrB
関数を用いる。 - 末尾から検索する場合は、
InStrRev
関数を用いる。WScript.Echo InStr("あいうえお', 'い')
' この場合は2文字目なので「2」が表示される。
- 見つからない場合はゼロを返す。
日付情報操作
書式 | 説明 | 引数 | 例 |
Now | システム日付時刻を取得 | なし | Now |
Date | システム日付を取得 | なし | Date |
Time | システム時刻を取得 | なし | Time |
DateAdd
DateAdd(strInterval, lngNum, dtm)
strInterval | どの単位で加算するかを文字列で指定 |
lngNum | 加算値 |
dtm | 元となる日付式 |
設定値 | 意味 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週 |
ww | 週日 |
h | 時 |
n | 分 |
s | 秒 |
kekka = DateAdd("n", 20, Now)
変数宣言を強制する
Option Explicit
メッセージボックスを出す
- メッセージボックスを表示します。
- ボタンは[OK]
MsgBox("こんにちは!")
- メッセージ内で改行を含める場合は、
vbCrLf
を用いる。MsgBox("ここで" & vbCrLf & "改行。")
ボタンとアイコンを指定する
MsgBox
関数の第二引数として指定する。定数 | 値 | 意味 |
vbOKCancel | 1 | [OK] ボタンと [キャンセル] ボタンを表示します。 |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、および [無視] の 3 つのボタンを表示します。 |
vbYesNoCancel | 3 | [はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示します。 |
vbYesNo | 4 | [はい] ボタンと [いいえ] ボタンを表示します。 |
vbRetryCancel | 5 | [再試行] ボタンと [キャンセル] ボタンを表示します。 |
vbCritical | 16 | 警告メッセージ アイコンを表示します。 |
vbQuestion | 32 | 問い合わせメッセージ アイコンを表示します。 |
vbExclamation | 48 | 注意メッセージ アイコンを表示します。 |
vbInformation | 64 | 情報メッセージ アイコンを表示します。 |
vbDefaultButton2 | 256 | 2番目のボタンを標準ボタンにします。 |
vbDefaultButton3 | 512 | 3番目ボタンを標準ボタンにします。 |
vbDefaultButton4 | 768 | 4番目ボタンを標準ボタンにします。 |
vbSystemModal | 4096 | システムモーダルなダイアログとします。 |
押されたボタンを判断する
MsgBox
関数の戻り値を使います。ボタン | 値 | 定数 |
vbOK | 1 | [OK] |
vbCancel | 2 | [キャンセル] |
vbAbort | 3 | [中止] |
vbRetry | 4 | [再試行] |
vbIgnore | 5 | [無視] |
vbYes | 6 | [はい] |
vbNo | 7 | [いいえ] |
ダイアログのタイトルを指定する
MsgBox
関数の第3引数にタイトルとして表示される文字列を指定する。ファイル操作
FileSystemObject
経由で操作する Dim objFs
Set objFs = CreateObject("Scripting.FileSystemObject")
ファイルが存在するか調べる
FileExists
メソッドを使う。存在するならTrue。If Not objFs.FileExists("aaa.txt") Then
MsgBox("aaa.txtは存在しない")
End If
テキストファイルのコピー(読み&書き)
Dim fsIn, fsOut
Set fsIn = objFs.OpenTextFile("input.txt")
Set fsOut = objFs.CreateTextFile("output.txt")
Do While Not fsIn.AtEndOfStream
text = fsIn.ReadLine
fsOut.WriteLine(text)
Loop
fsIn.Close
fsOut.Close
ファイルを削除する
objFs.DeleteFile "delete.txt"
ファイルのバージョン情報を取得する
version = objFs.GetFileVersion("sample.exe")
参考URL
- ASP ページでの Cookie の使用方法
http://support.microsoft.com/kb/302390/ja - ASP-VBScript講座
http://www.site-cooler.com/kwl/asp/ - VBScript で MD5 を実装する
http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/md5.html - BASP21 DLL(ASPの VBScript やVisual Basic、EXCEL VBA WSH(Windows Scripting Host)などから使える汎用のコンポーネント)
http://www.hi-ho.ne.jp/babaq/basp21.html - VBScript の機能
http://msdn.microsoft.com/ja-jp/library/cc392351.aspx - VBScript ランゲージ リファレンス
http://tryasp.winscom.co.jp/document/vbscript/vbstoc.htm - Active Server Pages ガイド
http://msdn.microsoft.com/ja-jp/library/cc338556.aspx - RIKO's ASP Trial
http://riko.s235.xrea.com/asp/index.htm - Toshimasa Shii VBScript Tips
http://www.whitire.com/vbs/index.html