Nasp

INDEX

Naspとは?

NaspはASPをもっとエキサイティングにするCOMライブラリです。

以下のようなことが可能です。

概要

Naspではスクリプト(ASP)とテンプレート(HTML)を分離して作成します。
以下に簡単な例を示します。

Sample.asp

<% option explicit: with Server.CreateObject("Nasp") .Name = Request.ServerVariables("URL"): .AddScript Me: .TemplateFolder = Server.MapPath("../template/"): .Template = "Sample.html": .Process(): end with public _ function OnDraw_ContentList(oMain, vParam) dim oRS: set oRS = CreateObject("ADODB.Recordset"): oRS.open "select * from TContent", "{YourConnectString...}": do until oRS.EOF oMain.View("CL_Field1") = oRS("Field1"): oMain.View("CL_Field2") = oRS("Field2"): oMain.View("CL_Field3") = oRS("Field3"): oMain.ProcessTemplate vParam(0): oRS.MoveNext(): loop end function %>

Sample.html

<html> <head> <title>Sample</title> </head> <body> <h1>Sample</h1> <table> <tr> <th>Field1</th> <th>Field2</th> <th>Field3</th> </tr> (#%ContentList| <tr> <td>(#*CL_Field1#)</td> <td>(#*CL_Field2#)</td> <td>(#*CL_Field3#)</td> </tr> #) </table> </body> </html>

例に示すとおり、Naspを使えばスクリプト(ASP)とテンプレート(HTML)は完全に分離され、
スクリプト(ASP)はイベントに応える形式で記述することができます。
イベントは様々用意されており、それぞれに応じた処理を記述することでWebサイトを構築できます。

これはほんの入り口。
Naspによるエキサイティングな方のASPをぜひご堪能ください。

動作環境
[ Nasp object ]
ASP 5.0, 5.1, 6.0, 7.0, 7.5 and later
[ other objects ]
Windows 2000, XP, 2003 Server, Vista, Server 2008, 7 and later
パッケージ内容
Nasp.dll
Naspライブラリ本体
注意事項
  1. 本ソフトウェアの利用は良識の範囲内でお願い致します。
  2. 本ソフトウェアの利用による損害の保証はお受けできません。
  3. 本ソフトウェアの利用は楽しんで行っていただきますようお願い致します。
インストール方法
  1. "Nasp.dll" をRegsvr32。
リファレンス
[ New Color ] [ Update Color ]
Nasp Library
Nasp

( Utilize from only ASP. )

Interface
INasp
ProgID
Nasp
NOM Name
Nasp [default]
TextTemplator

Interface
ITextTemplator
ProgID
Nasp.TextTemplator
NOM Name
TextTemplator
Utility

Interface
IUtility
ProgID
Nasp.Utility
NOM Name
Utility
INasp

Nasp的ASP処理を扱います。

プロパティ
Object Script = NULL [RW]
Naspが発生させるイベントを受け取るオブジェクト。
String Command = "" [RW]
Naspが発生するコマンドイベントの名前。
On_StartCommand 直前に Command が空文字列だった場合、
Commandの値はNaspによって自動的にRequestを元に設定されます。
String Template = "" [RW]
Naspが発生するテンプレートイベントの名前。
On_StartDraw 直前に Template が空文字列だった場合、
Templateの値はNaspによってDefaultTemplateに設定されます。
String TemplateFolder = "" [RW]
テンプレートファイルを取得するフォルダの絶対パス。
パスの最後に '\' があってもなくても構いません。(From Version:1.23.10.0)
String TemplateExt = "" [RW]
テンプレートファイルパスを生成する際に付加する拡張子。
String TemplateCharset = "UTF-8" [RW]
テンプレートファイルの文字コードセット。
String DefaultTemplate = "" [RW]
Template が "" の場合に利用されるテンプレート名。
On_StartDraw 直前に Template が空文字列だった場合、
Templateの値はNaspによってDefaultTemplateに設定されます。
String TemplatePermissionPath = "" [RW]
テンプレートの取得を許可するフォルダのパス。
詳細:
 ○空文字列:TemplateFolder 以内しか許されない
 ○あるパス:TemplatePermissionPath 以内しか許されない
String CommandName = "c" [RW]
自動的にセットされる Command の Request変数名。
Object Output = ASP.Response [RW]
描画の出力先オブジェクト。
出力先対応オブジェクト:
 ○ADODB.Stream
 ○ASP.Response
 ○Scripting.TextStream
 ○IStream
Object View = Scripting.Dictionary [R]
描画時 (#*XXX#)、(#/XXX#) 用 Dictionary。
View は Nasp.Processの間のみ生存しています。
Object Bag = Scripting.Dictionary [R]
描画時 (#&XXX#)、(#|XXX#) 用 Dictionary。
Bag は ASP.Session に格納され、Nasp.Abandonされるまで生存し続けます。
Bag を利用する場合には Name が指定されている必要があります。
Object Include = Scripting.Dictionary [R]
描画時 (#@XXX#) 用 Dictionary。
Include は Nasp.Processの間のみ生存しています。

スクリプト中で、
  oNasp.Include("area1") = "menu.html":
などとすることでテンプレート中の
  (#@area1#)
に "menu.html" が描画されます。
Object Request [R]
HTTPリクエストメソッドに応じたオブジェクトを返します。
詳細:
 ○GET :ASP.Request.QueryString
 ○POST(application/x-www-form-urlencoded) :ASP.Request.Form
 ○POST(multipart/form-data) :Nasp.MultipartForm
 ○POST(その他) :ASP.Request.QueryString
String Name = "" [RW]
Naspが内部で利用するSession変数の名前。
空文字列(デフォルト)の場合、Nasp は内部で Session変数 を一切利用しません。
Bag、Backable=False を利用する場合には値を設定する必要があります。
Bool Backable = True [RW]
ブラウザの戻るボタン対処をするか否か。
戻るボタンが使われた際にコマンドイベントが発生しないようにするには False を設定します。
Falseを設定する場合には Name が指定されている必要があります。
Bool NullIsEmpty = False [RW]
Null値の描画時に空文字列を描画するかエラーにするか。
以下の描画に適用されます。
  • (#;xxx#), (#;xxx#)
  • (#*xxx#), (#/xxx#)
  • (#=xxx#), (#~xxx#)
  • (#+xxx#), (#-xxx#)
  • (#$xxx#), (#\xxx#)
  • (#&xxx#), (#|xxx#)
(From Version:1.5.2.0)
Bool SubmitDecodeOnPutInto = False [RW]
PutIntoBag, PutIntoView, PutIntoProp時に SubmitDecode するかどうかを設定します。
(From Version:1.20.10.0)
Bool CacheTemplate = True [RW]
一度ロードしたテンプレートをメモリにキャッシュするか否かを指定します。
キャッシュすることで次回のテンプレート処理を高速に行うことができます。
キャッシュ数に制限はありませんが消費メモリを考慮してください。
(From Version:2.28.23.0)
Bool SelfEncode = False [RW]
NaspがDraw時に内部で利用するHTMLエンコードを Nasp.HTMLEncode にするか否かを指定します。
Falseの場合 Server.HTMLEncode が利用されます。
(From Version:2.31.24.0)
メソッド
void AddScript(Object oObject)
oObject
Naspが発生させるイベントを受け取るオブジェクト

Naspが発生させるイベントを受け取るオブジェクトを設定します。
複数回 AddScript された場合には、後にAddScriptされたものが優先的にイベントを受け取ります。

void PutIntoBag(String sName="", Bool bArray=False)
sName
Bagに取り込むRequestパラメータの名前を指定します。
"" の場合、リクエストされたすべてのパラメータをBagに取り込みます。
bArray
Bagに取り込む際に配列として取り込むか否か。

HTTPリクエスト時のパラメータをBagに取り込みます。
multipart/form-data での file の場合は FileName が取り込まれます。

void PutIntoView(String sName="", Bool bArray=False)
sName
Viewに取り込むRequestパラメータの名前を指定します。
"" の場合、リクエストされたすべてのパラメータをViewに取り込みます。
bArray
Viewに取り込む際に配列として取り込むか否か。

HTTPリクエスト時のパラメータをViewに取り込みます。
multipart/form-data での file の場合は FileName が取り込まれます。

void PutIntoProp(String sName="", Bool bArray=False)
sName
AddScriptされたオブジェクトのプロパティに取り込むRequestパラメータの名前を指定します。
"" の場合、リクエストされたすべてのパラメータをAddScriptされたオブジェクトのプロパティに取り込みます。
bArray
AddScriptされたオブジェクトのプロパティに取り込む際に配列として取り込むか否か。

HTTPリクエスト時のパラメータをAddScriptされたオブジェクトのプロパティに取り込みます。
multipart/form-data での file の場合は FileName が取り込まれます。
(From Version:1.15.4.0)

void Write(String sWritten, Bool bHTMLEncode=False)
sWritten
書かれる文字列
bHTMLEncode
書き込み時にHTMLEncodeするか否か

Outputに文字列を出力します。

void Abandon()

このAbandonを呼んだ期をもって Nasp処理 を終了します。
Abandonを呼ぶと Bag は消滅します。

void AddLog(String sName, String sValue)
sName
ログ名
sValue
ログ値

IISのログに、
 [sName:sValue]
の形式で書き込みます。

Bool FireEvent(String sName, Variant* pParam, Variant* pResult)
sName
イベント名
pParam
イベントに渡される引数
pResult
イベントの戻り値
戻り値
イベントが存在したか否か

sNameで指定したイベントを発生させます。
イベントにはpParamを渡すことができ、イベントの戻り値はpResultで取得できます。

void AddMessage(Variant vMessage, String sName="")
vMessage
メッセージを表す数値、またはメッセージ自体の文字列
sName
メッセージを表示する位置の名前

描画時に利用するためのメッセージを追加します。
追加されたメッセージは (#%_Message#) によって利用されます。
vMessageに数値を指定すると、(#%_Message_Text#) で用意されたメッセージの1から始まる順番で利用します。
vMessageに文字列を指定すると、(#%_Message_Text#) で vMessage が利用されます。

Bool MessageExists([Variant vName])
vName
メッセージを表示する位置の名前
戻り値
メッセージが追加されているか否か

AddMessageによってメッセージが追加されているか否かを調べます。
vNameを省略すると名前に関係なくメッセージが追加されているか否か返します。

void ProcessTemplate(String sTemplate)
sTemplate
テンプレート処理される文字列

sTemplateをテンプレート処理します。

void Process()

Nasp処理を行います。

Array ToArray(Object oStringList)
oStringList
リクエストパラメータ
戻り値
リクエストパラメータ配列

リクエストパラメータを配列に変換します。

String ToCommand(String sCommand)
sCommand
コマンド名
戻り値
コマンド文字列

sCommand を元にHTTPリクエスト用のコマンド文字列を生成します。

String ToParameter(String sName, String sValue)
sName
パラメーター名
sValue
パラメーター値
戻り値
パラメータ文字列

sName を元にHTTPリクエスト用のパラメータ文字列を生成します。

void Redirect(String sLocation)
sLocation
リダイレクト先

ブラウザへレスポンスコード302を送ります。
ASP.Response.Redirect との違い:
 ○sLocationをURLエンコードしない
 ○Response.Endしない
(From Version:1.15.4.0)

void DrawTemplate(String sTemplateName)
sTemplateName
描画するTemplate

sTemplateName を描画します。

Object NewADOCommand(Variant* pConnection, String sCommandText, long nCommandType=4)
pConnection
DBへの接続
sCommandText
ADODB.Command の CommandText
nCommandType
ADODB.Command の CommandType
戻り値
ADODB.Command

ADODB.Commandを生成します。

Object NewTemplator(String sOnDraw_Prefix="OnDraw_")
sOnDraw_Prefix
描画イベントのプレフィックス
戻り値
INaspedTemplator

テンプレート処理を別に行うためのTemplatorオブジェクトを返します。

Object NewMail(String sSMTPServer="", long nPort=25)
sSMTPServer
SMTPサーバー名
nPort
SMTPサーバーポート番号
戻り値
CDO.Message

メールを送信するためのメッセージオブジェクトを生成します。

String MakeKey(long nLen, String sMaterial="ABCDEFGHIJKLMNOPQRSTUVWXYZ")
nLen
作成する文字列の長さ
sMaterial
文字列を作成するときに使用する文字群
戻り値
ランダムな文字列

ランダムな文字列を生成します。

String MakeGUID(Bool bShort=True)
bShort
短形式か否か
戻り値
GUID文字列

GUIDを生成します。
bShort詳細:
 ○True :CE875870999D4663AF908BC61EECBEC0
 ○False:{CE875870-999D-4663-AF90-8BC61EECBEC0}

void Sleep(long nMilliseconds)
nMilliseconds
待機する時間(ミリ秒)

処理を nMilliseconds(ミリ秒) の間待機します。

String MD5(Variant* pData, long nCodepage=-1)
pData
MD5計算元データ(Byte()、String)
nCodepage
pDataが文字列の場合にMD5値を計算するために利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
 ○shift_jis : 932
 ○euc-jp : 51932
 ○utf-8 : 65001
(From Version:1.15.4.0)
戻り値
MD5値

MD5値を計算します。

String SHA1(Variant* pData, long nCodepage=-1)
pData
SHA1計算元データ(Byte()、String)
nCodepage
pDataが文字列の場合にSHA1値を計算するために利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
 ○shift_jis : 932
 ○euc-jp : 51932
 ○utf-8 : 65001
戻り値
SHA1値

SHA1値を計算します。
(From Version:1.15.4.0)

Bool FindString(Variant* pStrings, Variant* pTargets)
pStrings
検索されるの文字列、または文字列の配列
pTargets
検索する文字列、または文字列の配列
戻り値
pStringsの中にpTargetsがあるか否か

pStringsの中にpTargetsがあるか否かを調べます。

String HanToZen(String sSource)
sSource
半角文字を含んだ文字列
戻り値
全角文字への変換後の文字列

半角文字を含んだ文字列を全角文字へ変換します。

String ZenToHan(String sSource)
sSource
全角文字を含んだ文字列
戻り値
半角文字への変換後の文字列

全角文字を含んだ文字列を半角文字へ変換します。

String SubmitDecode(String sSource)
sSource
"&#NN...N;" を含む文字列
戻り値
"&#NN...N;" をUnicode値にデコードした文字列

ブラウザから送信された "&#NN...N;" を含む文字列をUnicode値にデコードします。
これでデコードされた文字列をもう一度ブラウザへ返す場合はHTMLEncodeしてください。
(From Version:1.20.10.0)

String Trim(String sSource)
sSource
入力文字列
戻り値
空白文字がトリムされた文字列

sSource の前後にある空白文字を除去します。
空白文字は以下です。

  • " " (半角スペース)
  • " " (全角スペース)
  • TAB
  • CR
  • LF
VBScriptのTrimよりも多くの空白文字を除去します。
(From Version:1.23.10.0)

String HTMLEncode(String sSource)
sSource
入力文字列
戻り値
HTMLエンコードされた文字列

sSource をHTMLエンコードします。
エンコード対象は以下です。

  • < (&lt;)
  • > (&gt;)
  • " (&quot;)
  • & (&amp;)
(From Version:2.31.24.0)

String Base64Encode(Variant* pData, long nCodepage=-1)
pData
エンコード元データ(Byte()、String)
nCodepage
pDataが文字列の場合にエンコードに利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
Base64文字列(String)

文字列、またはバイナリデータをBase64エンコードします。

Variant Base64Decode(String sSource, long nCodepage=-1)
sSource
Base64文字列(String)
nCodepage
デコード結果の文字列のコードページ。
指定しない(-1)とデコード結果をUNICODEとして扱います。
-2を指定するとデコード結果をバイナリで返します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
デコード結果(Byte()、String)

Base64文字列をデコードし、文字列、またはバイナリデータ返します。

String URLEncode(Variant* pData, long nCodepage=-1)
pData
エンコード元データ(Byte()、String)
nCodepage
pDataが文字列の場合にエンコードに利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
URLエンコード文字列(String)

文字列、またはバイナリデータをURLエンコードします。

Variant URLDecode(String sSource, long nCodepage=-1)
sSource
URLエンコード文字列(String)
nCodepage
デコード結果のコードページ。
指定しない(-1)とデコード結果をUNICODEとして扱います。
-2を指定するとデコード結果をバイナリで返します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
デコード結果(Byte()、String)

URLエンコード文字列をデコードし、文字列、またはバイナリデータ返します。

イベント
void On_FirstAccess(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]

Naspのセッション処理が始まった場合に発生します。
Bag変数の初期化などを行うタイミングに適しています。

void On_LastAccess(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]

Naspのセッション処理が終わる場合に発生します。
Nasp.Abandonによって引き起こされるイベントです。

Bool On_StartProcess(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Processを行うか否か

Nasp処理の直前に発生します。
戻り値にFalseを指定することでNasp処理を中止することができます。

void On_EndProcess(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]

Nasp処理の直後に発生します。

Bool On_StartCommand(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Command処理を行うか否か

Command処理の直前に発生します。
戻り値にFalseを指定することでCommand処理を中止することができます。

void On_EndCommand(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]

Command処理の直後に発生します。

Bool On_StartDraw(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Draw処理を行うか否か

Draw処理の直前に発生します。
戻り値にFalseを指定することでDraw処理を中止することができます。

void On_EndDraw(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]

Draw処理の直後に発生します。

Bool OnCommand_***(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Commandを処理したか否か

Command "***" の処理が必要なときに発生します。
処理が失敗した場合には戻り値にFalseを設定してください。

Bool OnTemplate_***(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Templateを処理したか否か

Template "***" の処理が必要なときに発生します。
処理が失敗した場合には戻り値にFalseを設定してください。

Bool OnDrawTemplate_***(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Template処理を続けるか否か

Template "***" の処理直前に発生します。
このイベントでNasp.Templateを変更し、戻り値をFalseに設定すると
Naspは描画処理をやり直します。

void OnDraw_***(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
テンプレート引数の配列

テンプレート中の描画イベント "(#%***#)" で発生します。
描画イベントに "(#%***|aaa#|#bbb#)" のように引数がある場合はvParamによって渡されます。

Bool On_TemplateNotFound(Object oNasp, Variant vParam)
oNasp
このイベントを発生させたNaspオブジェクト
vParam
[未使用]
戻り値
Templateファイル取得処理を続けるか否か

Templateファイルの取得に失敗した場合に発生します。
このイベントでNasp.Templateを変更し、戻り値をFalseに設定すると
Naspは描画処理をやり直します。

テンプレート
置換記号
;
プロパティ出力(HTMLエンコードあり)
:
プロパティ出力(HTMLエンコードなし)
&
Bag出力(HTMLエンコードあり)
|
Bag出力(HTMLエンコードなし)
*
View出力(HTMLエンコードあり)
/
View出力(HTMLエンコードなし)
=
ASP.Session出力(HTMLエンコードあり)
~
ASP.Session出力(HTMLエンコードなし)
+
ASP.Application出力(HTMLエンコードあり)
-
ASP.Application出力(HTMLエンコードなし)
$
ASP.Request出力(HTMLエンコードあり)
検索順:ServerVariables, QueryString, Form, MultipartForm, Cookies, ClientCertificate
\
ASP.Request出力(HTMLエンコードなし)
検索順:ServerVariables, QueryString, Form, MultipartForm, Cookies, ClientCertificate
!
コマンド文字列出力(HTMLエンコードあり)
?
コマンド文字列出力(HTMLエンコードなし)
`
静的テンプレートインクルード
@
動的テンプレートインクルード(Include出力)
%
描画イベント
置換値の対応型

{;:&|*/=~+-}の値は以下に対応しています。

スカラー
数値、文字列、日時などの一般的な型を指定できます。
Ex. (#;vSample#)
配列
引数でインデックスを指定できます。
Ex. (#;aArray|3#)
デフォルトメソッドを持つオブジェクト
引数で名前を指定できます。
Ex. (#;oDictionary|name001#), (#;oRecordset|name001#)
デフォルトメソッドを持たないオブジェクト (From Version:1.10.3.0)
引数でプロパティ、メソッドを指定できます。
Ex. (#;oObject|prop001#)
組み込み描画イベント
_Input
(#%_Input|{sName}#|#{sValue}#|# <input type="radio" name="(#*_Input_Name#)" value="(#*_Input_Value#)" (#%_Input_Default|#|#checked#)/> #)
{sName}
Input要素名
{sValue}
Input要素値

Bag({sName}) を元にHTMLのinput要素を描画します。
Bag({sName}) と {sValue} が等しい場合には (#%_Input_Default#) によって checked が描画されます。

_InputV
(#%_InputV|{sName}#|#{sValue}#|# <input type="radio" name="(#*_InputV_Name#)" value="(#*_InputV_Value#)" (#%_InputV_Default|#|#checked#)/> #)
{sName}
Input要素名
{sValue}
Input要素値

View({sName}) を元にHTMLのinput要素を描画します。
View({sName}) と {sValue} が等しい場合には (#%_InputV_Default#) によって checked が描画されます。

_InputP
(#%_InputP|{sName}#|#{sValue}#|# <input type="radio" name="(#*_InputP_Name#)" value="(#*_InputP_Value#)" (#%_InputP_Default|#|#checked#)/> #)
{sName}
Input要素名
{sValue}
Input要素値

プロパティ({sName}) を元にHTMLのinput要素を描画します。
プロパティ({sName}) と {sValue} が等しい場合には (#%_InputP_Default#) によって checked が描画されます。
(From Version:1.10.3.0)

_InputDefault
<input type="radio" name="{sName}" value="{sValue}" (#%_InputDefault|{sName}#|#{sValue}#|#checked="checked"#|##)/>
{sName}
Input要素名
{sValue}
Input要素値

Bag({sName}) を元にHTMLのinput要素のデフォルト値(checked,selected)を描画します。
Bag({sName}) と {sValue} が等しい場合には引数の3つ目が、等しくない場合には4つ目が描画されます。
※_Input_Defaultと違い、_Inputの外で単独で動作します。
(From Version:1.10.3.0)

_InputDefaultV
<input type="radio" name="{sName}" value="{sValue}" (#%_InputDefaultV|{sName}#|#{sValue}#|#checked="checked"#|##)/>
{sName}
Input要素名
{sValue}
Input要素値

View({sName}) を元にHTMLのinput要素のデフォルト値(checked,selected)を描画します。
View({sName}) と {sValue} が等しい場合には引数の3つ目が、等しくない場合には4つ目が描画されます。
※_InputV_Defaultと違い、_InputVの外で単独で動作します。
(From Version:1.10.3.0)

_InputDefaultP
<input type="radio" name="{sName}" value="{sValue}" (#%_InputDefaultP|{sName}#|#{sValue}#|#checked="checked"#|##)/>
{sName}
Input要素名
{sValue}
Input要素値

プロパティ({sName}) を元にHTMLのinput要素のデフォルト値(checked,selected)を描画します。
プロパティ({sName}) と {sValue} が等しい場合には引数の3つ目が、等しくない場合には4つ目が描画されます。
※_InputP_Defaultと違い、_InputPの外で単独で動作します。
(From Version:1.10.3.0)

_Message
Pattern 1:エリア名省略型 (From Version:1.18.4.0)
(#%_Message| <div class="error">(#%_Message_Text|Fatal error!!!#)</div> #)
Pattern 2:エリア名指定型
(#%_Message|{sName}#|# <div class="error">(#%_Message_Text|Fatal error!!!#)</div> #)
Pattern 3:メッセージがない場合のメッセージ指定型 (From Version:1.18.4.0)
(#%_Message|{sName}#|# <div class="error">(#%_Message_Text|Fatal error!!!#)</div> #|# <div>There is no message.</div> #)
{sName}
エリア名

Nasp.AddMessage によって追加されたメッセージを描画します。
Nasp.AddMessage によって数値Nが追加された場合には、
(#%_Message_Text|…#) のテンプレート引数N番目が描画されます。
Pattern 1 の場合、エリア名は""(空文字列)が利用されます。

INaspedTemplator

テンプレート処理を扱います。

プロパティ
Object Script [RW]
描画イベントを受け取るオブジェクト
Object Main [R]
このTemplatorを生成したNaspオブジェクト
Object Stream [RW]
出力ストリーム(ADODB.Stream)
メソッド
void ProcessTemplateFile(String sFilePath, String sCharset="UTF-8")
sFilePath
処理されるテンプレートファイルのパス
sCharset
テンプレートファイルのエンコード

ファイルを読み込み、テンプレートとして処理します。

void ProcessTemplate(String sTemplate)
sTemplate
処理されるテンプレート文字列

文字列をテンプレートとして処理します。

void Write(String sWritten, Bool bHTMLEncode)
sWritten
Streamに書かれる文字列
bHTMLEncode
書き込み時にHTMLエンコードするか否か

Streamに文字列を書き込みます。

String Flush()
戻り値
Streamに溜まっていた文字列

Streamに溜まっている文字列を取得し、Streamを空にします。

イベント
void OnDraw_***(Object oNasp, Variant vParam)
oNasp
このTemplatorを生成したNaspオブジェクト
vParam
テンプレート引数の配列

描画 "***" が必要なときに発生するイベントです。

IFormFile

アップロードされたファイルを扱います。

プロパティ
String FileName [R]
ファイルのフルパス名
String FileName2 [R]
フィルのフルパス名のうちのファイル名
String ContentType [R]
ファイルのContentType
Object Stream [R]
ファイルの内容が格納されたADODB.Streamオブジェクト
ITextTemplator

テンプレート処理を扱います。
(From Version:1.2.1.0)

プロパティ
Object Script [RW]
描画イベントを受け取るオブジェクト。
またはコレクション。(From Version:1.23.10.0)
Object Stream [RW]
出力ストリーム(ADODB.Stream)
メソッド
void ProcessTemplateFile(String sFilePath, String sCharset="UTF-8")
sFilePath
処理されるテンプレートファイルのパス
sCharset
テンプレートファイルのエンコード

ファイルを読み込み、テンプレートとして処理します。

void ProcessTemplate(String sTemplate)
sTemplate
処理されるテンプレート文字列

文字列をテンプレートとして処理します。

void Write(String sWritten, Bool bHTMLEncode)
sWritten
Streamに書かれる文字列
bHTMLEncode
書き込み時にHTMLエンコードするか否か

Streamに文字列を書き込みます。

String Flush()
戻り値
Streamに溜まっていた文字列

Streamに溜まっている文字列を取得し、Streamを空にします。

置換
(#xxx#)
xxx
Scriptにセットされているオブジェクトのメンバ名。
またはコレクションのキー名。(From Version:1.23.10.0)

TextTemplatorはテンプレート中に "(#xxx#)" が見つかると
Scriptにセットされているオブジェクトのメンバ "xxx" を呼び出します。
メンバ "xxx" はプロパティ、メソッドのどちらでもかまいません。
プロパティ、メソッドが見つからない場合、Scriptにセットされているオブジェクトをコレクションとして扱い、
キー値の取得を試みます。(From Version:1.23.10.0)
INaspedTemplatorとは違い、置換記号はありません。

○"xxx" がプロパティの場合
そのプロパティの値がテンプレートに置換されます。
○"xxx" がメソッドの場合
そのメソッドが呼び出され戻り値がテンプレートに置換されます。
メソッド形式: Variant xxx(Object oTextTemplator, Variant vParam)

IUtility

便利なメソッドを提供します。
(From Version:1.2.1.0)

メソッド
String MakeKey(long nLen, String sMaterial="ABCDEFGHIJKLMNOPQRSTUVWXYZ")
nLen
作成する文字列の長さ
sMaterial
文字列を作成するときに使用する文字群
戻り値
ランダムな文字列

ランダムな文字列を生成します。

String MakeGUID(Bool bShort=True)
bShort
短形式か否か
戻り値
GUID文字列

GUIDを生成します。
bShort詳細:
 ○True :CE875870999D4663AF908BC61EECBEC0
 ○False:{CE875870-999D-4663-AF90-8BC61EECBEC0}

void Sleep(long nMilliseconds)
nMilliseconds
待機する時間(ミリ秒)

処理を nMilliseconds(ミリ秒) の間待機します。

String MD5(Variant* pData, long nCodepage=-1)
pData
MD5計算元データ(Byte()、String)
nCodepage
pDataが文字列の場合にMD5値を計算するために利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
 ○shift_jis : 932
 ○euc-jp : 51932
 ○utf-8 : 65001
(From Version:1.15.4.0)
戻り値
MD5値

MD5値を計算します。

String SHA1(Variant* pData, long nCodepage=-1)
pData
SHA1計算元データ(Byte()、String)
nCodepage
pDataが文字列の場合にSHA1値を計算するために利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
 ○shift_jis : 932
 ○euc-jp : 51932
 ○utf-8 : 65001
戻り値
SHA1値

SHA1値を計算します。
(From Version:1.15.4.0)

Bool FindString(Variant* pStrings, Variant* pTargets)
pStrings
検索されるの文字列、または文字列の配列
pTargets
検索する文字列、または文字列の配列
戻り値
pStringsの中にpTargetsがあるか否か

pStringsの中にpTargetsがあるか否かを調べます。

String HanToZen(String sSource)
sSource
半角文字を含んだ文字列
戻り値
全角文字への変換後の文字列

半角文字を含んだ文字列を全角文字へ変換します。

String ZenToHan(String sSource)
sSource
全角文字を含んだ文字列
戻り値
半角文字への変換後の文字列

全角文字を含んだ文字列を半角文字へ変換します。

String SubmitDecode(String sSource)
sSource
"&#NN...N;" を含む文字列
戻り値
"&#NN...N;" をUnicode値にデコードした文字列

ブラウザから送信された "&#NN...N;" を含む文字列をUnicode値にデコードします。
これでデコードされた文字列をもう一度ブラウザへ返す場合はHTMLEncodeしてください。
(From Version:1.20.10.0)

String Trim(String sSource)
sSource
入力文字列
戻り値
空白文字がトリムされた文字列

sSource の前後にある空白文字を除去します。
空白文字は以下です。

  • " " (半角スペース)
  • " " (全角スペース)
  • TAB
  • CR
  • LF
VBScriptのTrimよりも多くの空白文字を除去します。
(From Version:1.23.10.0)

String HTMLEncode(String sSource)
sSource
入力文字列
戻り値
HTMLエンコードされた文字列

sSource をHTMLエンコードします。
エンコード対象は以下です。

  • < (&lt;)
  • > (&gt;)
  • " (&quot;)
  • & (&amp;)
(From Version:2.31.24.0)

String Base64Encode(Variant* pData, long nCodepage=-1)
pData
エンコード元データ(Byte()、String)
nCodepage
pDataが文字列の場合にエンコードに利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
Base64文字列(String)

文字列、またはバイナリデータをBase64エンコードします。

Variant Base64Decode(String sSource, long nCodepage=-1)
sSource
Base64文字列(String)
nCodepage
デコード結果の文字列のコードページ。
指定しない(-1)とデコード結果をUNICODEとして扱います。
-2を指定するとデコード結果をバイナリで返します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
デコード結果(Byte()、String)

Base64文字列をデコードし、文字列、またはバイナリデータ返します。

String URLEncode(Variant* pData, long nCodepage=-1)
pData
エンコード元データ(Byte()、String)
nCodepage
pDataが文字列の場合にエンコードに利用するコードページ。
指定しない(-1)とUNICODEで計算します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
URLエンコード文字列(String)

文字列、またはバイナリデータをURLエンコードします。

Variant URLDecode(String sSource, long nCodepage=-1)
sSource
URLエンコード文字列(String)
nCodepage
デコード結果のコードページ。
指定しない(-1)とデコード結果をUNICODEとして扱います。
-2を指定するとデコード結果をバイナリで返します。
コードページ例:
  ○shift_jis : 932
  ○euc-jp : 51932
  ○utf-8 : 65001
(From Version:2.32.0.0)
戻り値
デコード結果(Byte()、String)

URLエンコード文字列をデコードし、文字列、またはバイナリデータ返します。

更新履歴
2007/12/19
  • Version: 1.0.0.0
2008/01/15
  • Version: 1.0.1.0
  • レジストリ登録時に ThreadingModel=Apartment の設定を追加
2008/02/08
  • Version: 1.2.1.0
  • TextTemplator追加
  • Utility追加
2008/02/26
  • Version: 1.5.2.0
  • 配列の置換描画に失敗していた問題対処
  • Request置換描画($,\)のMultipartForm対応
  • Request置換描画の値検索順変更
  • Nasp::NullIsEmptyプロパティの追加
2008/02/27
  • Version: 1.10.3.0
  • オブジェクトのプロパティ、メソッド値の置換描画に対応
  • 組み込み描画イベント "_InputP", "_InputP_Default" を追加
  • 組み込み描画イベント "_InputDefault" を追加
  • 組み込み描画イベント "_InputDefaultV" を追加
  • 組み込み描画イベント "_InputDefaultP" を追加
2008/03/18
  • Version: 1.15.4.0
  • Nasp.PutInto関係でFileの場合にエラーになっていた問題対処
  • Nasp.MD5、Utility.MD5でコードページを指定できるように改良
  • Nasp.PutIntoPropを追加
  • Nasp.Redirectを追加
  • Nasp.SHA1、Utility.SHA1を追加
2008/08/28
  • Version: 1.18.4.0
  • 内部処理(ChangeToBSTR)改良
  • 組み込み描画イベント "_Message" に Pattern 1, 3 を追加
2008/08/28
  • Version: 1.18.5.0
  • PutInto処理での強制文字列変換を取りやめ
2008/09/08
  • Version: 1.18.8.0
  • NewADOCommandの第1引数をvConnectionからpConnectionに変更
  • MD5の第1引数をvDataからpDataに変更
  • SHA1の第1引数をvDataからpDataに変更
2008/12/16
  • Version: 1.20.10.0
  • COM Release 処理改良
  • TemplatePermissionPathをすり抜ける不具合対処
  • Nasp.SubmitDecode、Utility.SubmitDecodeを追加
  • Nasp.SubmitDecodeOnPutIntoを追加
2009/06/05
  • Version: 1.23.10.0
  • Nasp.TemplateFolderの改良
  • TextTemplator.Scriptのコレクション対応
  • Nasp.Trim、Utility.Trimを追加
2009/11/06
  • Version: 1.23.13.0
  • '/'を用いたTemplate指定時の動作を 1.18.8.0 互換に変更
  • AddMessageの第1引数をvMessageからpMessageに変更
  • MessageExistsの第1引数をvNameからpNameに変更
2010/03/19
  • Version: 2.28.23.0
  • <%@ EnableSessionState=False %>時でもNaspが利用できるように改良
  • Nasp.CacheTemplateを追加
  • オブジェクト生成の効率化
  • その他多彩な高速化
2010/04/20
  • Version: 2.28.24.0
  • TemplateFolder が空文字列でも動作するように変更
2011/02/10
  • Version: 2.31.24.0
  • Nasp.HTMLEncodeを追加
  • Nasp.SelfEncodeを追加
  • 'application/x-www-form-urlencoded', 'multipart/form-data' 以外のPOSTでも動作するように改良
2011/06/03
  • Version: 2.31.25.0
  • 'application/x-www-form-urlencoded' が ezweb で動作しない不具合対処
2012/10/16
  • Version: 2.31.26.0
  • 'multipart/form-data' 処理時のエラー処理の改善
2013/11/01
  • Version: 2.31.28.0
  • 次のプロパティの値が ASP の Response.CodePage を使用してエンコードされるように改良
  • 'multipart/form-data' 処理時の Request のキー
  • 'multipart/form-data' 処理時の Request の値
  • IFormFile.FileName
  • IFormFile.FileName2
  • IFormFile.ContentType
2014/03/14
  • Version: 2.32.0.0
  • INaspとIUtilityに下記のメソッドを追加
  • Base64Encode
  • Base64Decode
  • URLEncode
  • URLDecode