|
||||
|
|
7章 文字列操作
|
|
|
文字列を操作する
文字列を扱う機会はプログラムを記述する上で頻繁に出て来ます。 文字列の操作が難しい代表例として C言語がありますが、 ASP(VBScript)では非常に多くの文字列を操作するための関数が標準で提供されているので、文字列の操作を簡単に行う事が出来ます。 どのような関数があるのかは以降を参照してください。
文字列を操作する
Asc
[文字コード] = Asc ( 文字 )
引数で指定した文字の文字コードを返す。引数に文字列を指定した場合は先頭の文字の文字コードを返します。 InStr
[見つかった位置] = InStr ([開始位置,] 対象文字列, 検索文字列, [比較モード])
指定した文字列から指定した文字列を検索して、初めに見つかった文字の位置を返します。半角文字も全角文字も同じ1文字として扱われます。 InStrRev
[見つかった位置] = InStrRev (対象文字列, 検索文字列, [開始位置,] [比較モード])
指定した文字列から指定した文字列を 末尾 から検索して、初めに見つかった位置を返します。半角文字も全角文字も同じ1文字として扱われます Join
[結果文字列] = Join (対象配列, [区切り文字])
対象配列を指定した区切り文字で結合して文字列を返します。区切り文字を省略するとデフォルト値として、スペース [ " " ] で区切られた文字列になります。 LCase
[結果文字列] = LCase (文字列)
アルファベットの大文字だけが小文字に変換されます。文字列にそれ以外の文字が含まれていてもアルファベット大文字以外の文字は影響を受けません。 UCase
[結果文字列] = UCase (文字列)
アルファベットの小文字だけが大文字に変換されます。文字列にそれ以外の文字が含まれていてもアルファベット小文字以外の文字は影響を受けません。 Left
[結果文字列] = Left (対象文字列, 文字数)
文字列の左端から指定された文字数分の文字列を返します。 Right
[結果文字列] = Right (対象文字列, 文字数)
文字列の右端から指定された文字数分の文字列を返します。 Mid
[結果文字列] = Mid (対象文字列, 開始位置, [文字数])
文字列の任意の位置から指定した文字数分の文字列を返します。半角文字も全角文字も同じ1文字として扱われます。 VisualBasic では Mid関数を左辺に配置して、文字列の中で指定した位置に文字列を代入する事が可能ですが、VBScript の Mid 関数ではこのような記述は出来ません。 Len
[文字数] = Len (文字列)
文字列の文字数を返す。半角文字も全角文字も同じ1文字として扱われます。 Replace
[結果文字列] = Replace (対象文字列, 検索文字列, 置換文字列, [開始位置], [置換回数], [比較モード])
対象文字列から検索文字列を置換え文字列に変換した文字列を返します。 LTrim
[結果文字列] = LTrim (対象文字列)
文字列の左にあるスペースを削除します。左端にスペースが無い場合はそのままの文字列が戻ります。 RTrim
[結果文字列] = RTrim (対象文字列)
文字列の右にあるスペースを削除します。右端にスペースが無い場合はそのままの文字列が戻ります。Perl での chomp と同じ動作をします。 Trim
[結果文字列] = Trim (対象文字列)
文字列の両端にあるスペースを削除します。両端にスペースが無い場合はそのままの文字列が戻ります。 Space
[スペース] = Space (数)
指定した数分スペースを返します Split
[一次元配列] = Split (対象文字列, [区切り文字], [最大要素数], [比較モード])
引数で指定した対象変数を区切り文字で分割して配列を作成してその配列を返します。 区切り文字を省略するとデフォルト値として、スペース [ " " ] が区切り文字として使用されます。 StrComp
[比較結果] = StrComp (比較文字列1, 比較文字列2, [比較モード])
二つの文字列を比較してなどしければ 0 を、などしくなければ大きいか小さいかを判断して値を返します。 StrReverse
[結果文字列] = StrReverse (対象文字列)
指定された文字列を逆順にして、その文字列を返します。 フォーマット関数
Hex
[結果文字列] = Hex ( 数値 )
引数で指定された 10進数を 16進数へ変換した結果を返します。全角数値も変換する事が出来ますが、アルファベット、カタカナなど不正な値を引数に設定した場合は実行時エラーとなります。 Oct
[結果文字列] = Oct ( 数値 )
引数で指定された 10進数を 16進数へ変換した結果を返します。全角数値も変換する事が出来ますが、アルファベット、カタカナなど不正な値を引数に設定した場合は実行時エラーとなります。 FormatCurrency
[結果文字列] = FormatCurrency (対象値, [小数点以下表示桁数], [ゼロ表示], [負数表示形式], [桁区切り])
指定された値をシステムで設定されている通貨記号で通貨形式の文字列に書式設定します。 FormatNumber
[結果文字列] = FormatNumber (対象値, [対象文字列], [検索文字列], [比較モード])
指定された値を数値形式の文字列に書式設定します。 FormatPercent
[結果文字列] = FormatPercent (対象値, [対象文字列], [検索文字列], [比較モード])
指定された値を割合表示形式 ( % ) に書式設定します。 文字列操作の応用
ここまで見て頂いたように VBScript には文字列を操作するための関数は沢山あります。 これら関数を使って上手に文字列を扱う例を少しご紹介します。
パス名→ファイル名抜きだし処理 T
strFull = "C:\Program Files\Microsoft Office\Office\EXCEL.EXE" strFile = Mid(strFull,InStrRev(strFull,"\")+1) '// ← T Response.Write(strFile) 上のスクリプトをコピーして実行してみてください。結果は下のように表示されると思います。
EXCEL.EXE
1. 先ずフルパスの中から1番最後の"¥"を検索して位置を取得します。
InStrRev(strFull,"\")
2. 1で取得した値を Mid 関数の開始位置として使用するため1を加算します。1を加算しないとここで取得した値は"¥"を指してしまいます。
InStrRev(strFull,"\")+1
3. 2で取得した値から文字列の末尾までを抽出します。 1番最後にある"¥"(区切り文字)から末尾まで、つまりファイル名を取得する事が出来ます。
Mid(strFull,InStrRev(strFull,"\")+1)
パス名→ファイル名抜きだし処理 U
strFull = "C:\Program Files\Microsoft Office\Office\EXCEL.EXE" strFile = Split(strFull,"\")(UBound(Split(strFull,"\"))) '// ← T Response.Write(strFile) このスクリプトは配列を利用した応用例ですが、1行だけでパスからファイル名を抜き出す事が出来ます。 このスクリプトも先程のスクリプト同様、結果は次になります。
EXCEL.EXE
1. 先ずフルパスを"¥"を区切り文字として配列に変換します。
Split(strFull,"\")
2. 1で使用する添え字を取得するため、1と同じ条件で配列を作成して、その最大要素番号を取得します。ファイル名は当然ですが "¥" で区切った最後尾に存在するので、これを配列にすると最大要素 ( UBoundで取得できる ) にファイル名が格納されている事になります。
(UBound(Split(strFull,"\")))
3. 1で作成した配列のなかから2で取得した添え字を使用する事でファイル名を抽出します。
Split(strFull,"\")(UBound(Split(strFull,"\")))
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||