(for Internet Explorer)
← ▼ ▲
↑
CompareFuncion 型、比較関数型
Function CompareFuncion( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターを比較する関数の型。 関数名は、CompareFuncion とは限りません。
【引数】
Left
Right
１つ目のパラメーター
２つ目のパラメーター
Param
比較に使う補助パラメーター
返り値
０：等しい、正の数：Left が大きい、負の数：Rightが大きい （昇順：小→大のとき）
StrComp
も、この関数型です。
ShakerSort
Left、Right は、
などの関数に指定するコレクションの要素です。
Param には、ShakerSort などの関数にある引数がそのまま渡ります。
昇順：小→大にするときは、Left - Right の値を返してください。
降順にするときは、返り値の正と負を変えてください。
→ StdCompare
関連
→ NameCompare
→ LengthCompare
→ LengthNameCompare
→ StrCompOption
← ▼ ▲
StdCompare
Function StdCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターを標準的な方法で比較します。
Left
Right
返り値
比較関数型
です。
数値
数値
-1, 0, 1 のどれか。（＝や＞と同じ）
文字列
文字列
StrComp と同じ （＝や＞と同じ）。Param 引数も同じ
オブジェクト
オブジェクト
is 演算子
の結果が True なら 0、 False なら -1
Empty
Empty
0
Empty 以外
Empty
1 （昇順でソートすると、Emptyが最後になる）
Empty
Empty 以外
-1
日付
日付
古い方が小さい値となる返り値 （＝や＞と同じ）
(src)
任意の型
Left と異なる型
-1 （エラーにはならない）
テスト
→ T_QSort.vbs # [T_CompareFunc]
Param 引数は、Left と Right が文字列のときだけ有効です。
← ▼ ▲
NameCompare
Function NameCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターを Name プロパティで比較します。
Left
Right
返り値
比較関数型
です。
オブジェクト
オブジェクト
Name プロパティを StrComp に渡した結果
オブジェクト以外
オブジェクト以外
0
オブジェクト以外
オブジェクト
-1 （昇順でソートすると、オブジェクト以外が最後になる）
オブジェクト
オブジェクト以外
1
(src)
テスト
→ T_QSort.vbs # [T_CompareFunc]
Param 引数は、StrComp 関数と同じです。
← ▼ ▲
LengthCompare
Function LengthCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターの長さを比較します。
文字列型のときは、文字列の長さを比較します。
Param がマイナスなら、返り値の正と負が入れ替わります。
比較関数型
です。
(src)
← ▼ ▲
LengthNameCompare
Function LengthNameCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターの Name プロパティを LengthCompare で比較します。
比較関数型
です。
(src)
Param = -1 にすると、逆順になります。
← ▼ ▲
文字列
関連
→ ファイル名・パス
← ▼ ▲
CInt2
Function CInt2( v as string ) as integer
CInt でエラーが発生する値を v に指定したときは、0 を返します。
文字列を数値に変換します。
(src)
VBScript では、CInt は、符号付き16ビット整数ですが、CInt2 は
CLng に相当する 符号付き32ビット整数に対応しています。
← ▼ ▲
Trim2, LTrim2, RTrim2
Function Trim2( v as string ) as string
文字列の端の空白文字だけでなく、タブ文字、改行文字もカットした文字列を返します。
Function LTrim2( v as string ) as string
Function RTrim2( v as string ) as string
(src)
← ▼ ▲
LenK
Function LenK( Str as string ) as integer
英文字を 1文字、日本語（文字コード256以上）を 2文字として文字数を返します。
サンプル：
LenK( "123" ) = 3
LenK( "123あいう" ) = 9
(src)
→ GetLineNumsExistNotEnglighChar
関連
← ▼ ▲
GetTab
(src)
Function GetTab( Level as integer ) as string
インデント数を指定して、空白文字を返します。
インデント数×２の空白文字を返します。
← ▼ ▲
CutLastOf
Sub CutLastOf( in_out_Str as string, LastStr as string, Opt as integer )
(src)
in_out_Str の最後が LastStr と一致したら、それをカットします。
【引数】
in_out_Str
LastStr
（入出力） カットされるかもしれない文字列
比較する文字列
関連
→ T_Str.vbs # [T_StrComp]
テスト
c.CaseSensitive
Opt
Empty または
→ CutLastOfFileName
→ StrCompLastOf
サンプル：
s = "file1.txt"
CutLastOf s, "1.txt", Empty
Assert s = "file"
← ▼ ▲
→ T_Str.vbs # [T_StrComp]
テスト
Function StrCompHeadOf( Str as string, HeadStr as string, Opt as integer ) as integer
文字列の先頭を比較します。
【引数】
Str
HeadStr
比較される文字列
Str の先頭と比較する文字列
c.CaseSensitive
Opt
Empty または
Str 引数の値
LastStr 引数の値
返り値
返り値
Str の先頭 = HeadStr なら、0
→ StrComp
"ABCDE"
"ABC"
0 (=一致)
0以外(=異なる)、負の値
"CDE"
"ABCDE"
関連
→ StrCompLastOf
(src)
StrCompHeadOf
← ▼ ▲
StrCompLastOf
(src)
→ T_Str.vbs # [T_StrComp]
テスト
Function StrCompLastOf( Str as string, LastStr as string, Opt as integer ) as integer
文字列の末尾を比較します。
【引数】
Str
LastStr
比較される文字列
Str の末尾と比較する文字列
c.CaseSensitive
Opt
Empty または
Str 引数の値
LastStr 引数の値
返り値
返り値
Str の末尾 = LastStr なら、0
→ StrComp
"ABCDE"
"CDE"
0 (=一致)
0以外(=異なる)、正の値
"ABC"
"ABCDE"
関連
→ CutLastOf
→ StrCompLastOfFileName
→ StrCompHeadOf
← ▼ ▲
StrCount
(src)
Function StrCount( Str as string, Keyword as string, StartPos as integer, Opt as integer ) as integer
文字列が存在する数を返します。
【引数】
Str
Keyword
数を数えられる文字列
数を数える文字列
c.CaseSensitive
Opt
Empty または
Str 引数の値
Keyword 引数の値
返り値
返り値
Str の中にある Keyword の数
"ABCABC"
"ABC"
2
2
"A"
"ABCABC"
Str の中の、数え始める位置。 先頭=1
StartPos
"D"
0
"ABCABC"
"/Folder/File"
"/"
2
テスト
→ T_Str.vbs # [T_StrCount]
← ▼ ▲
StrCompOption
(src)
Function StrCompOption( Opt as integer ) as integer
StrComp
の Option 引数に指定する値を返します。
Opt 引数の値
返り値
Empty
vbBinaryCompare (=0)
vbTextCompare (=1)
大文字小文字は区別しない
大文字小文字は区別する
c.CaseSensitive
その他
vbTextCompare (=1)
いろいろな関数の Opt 引数が、StrCompOption の Opt 引数と同じ意味を持つことが
よくあります。
サンプル：
Dim c : Set c = g_VBS_Lib
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
サンプル：
Dim c : Set c = g_VBS_Lib
If StrComp( "ABC", "BC", StrCompOption( c.CaseSensitive ) ) = 0 Then ...
← ▼ ▲
AddIfNotExist
(src)
Function AddIfNotExist( WholeStr as string, AddStr as string, Separator as string,
Opt ) as string
WholeStr に AddStr が含まれていなければ、先頭に AddStr を追加したものを返します。
【引数】
WholeStr
AddStr
文字列の列挙
追加する文字列
Separator
文字列の列挙を区切る文字列
AddStr＋Separator＋WholeStr、または、WholeStr
返り値
Opt
c.CaseSensitive
Empty または
サンプル
Assert AddIfNotExist( "ABC;DEF", "XYZ", ";", Empty ) = "XYZ;ABC;DEF"
Assert AddIfNotExist( "ABC,XYZ", "XYZ", ",", Empty ) = "ABC;XYZ"
Assert AddIfNotExist( "", "XYZ", ";", Empty ) = "XYZ;"
set_ "PATH", AddIfNotExist( env("%PATH%"), _
GetAbsPath( "..\bin", Empty ), ";", Empty )
サンプル
PATH 環境変数に "..\bin" フォルダーの絶対パスを追加する
→ T_Str.vbs # [T_AddIfNotExist]
テスト
← ▼ ▲
MeltQuot
→ MeltCSV
関連
" " で囲まれた部分を取り出す。
Function MeltQuot( Line as string, in_out_Start as integer ) as string
i = 1
Do
s = MeltQuot( line, i )
If not IsEmpty( s ) Then （s を使った処理）
If i = 0 Then Exit Do
Loop
【引数】
Line
in_out_Start
文字列全体
（入力） 取り出しを開始する文字の位置、（出力）次に取り出す〜
返り値
" " で囲まれた部分文字列。Empty=項目に値が無い
サンプル
(src)
→ T_Str.vbs # [T_MeltQuot]
テスト
← ▼ ▲
sscanf
Function sscanf( String, Format )
(src)
文字列の途中を取り出します。
【引数】
String
Format
文字列全体
取り出す部分を指定する文字列。 "%d" または "%s" を含む
vbslib.vbs
ファイル：
返り値
取り出した文字列、または、数値
サンプル：
Assert sscanf( "ABC123DEF", "ABC%dDEF" ) = 123
数値を取り出すときは、%d を使います。
文字列を取り出すときは、%s を使います。
Assert sscanf( "===[ABC]===", "[%s]" ) = "ABC"
サンプル：
→ T_Str.vbs # [T_sscanf]
テスト
→ ReadFileInTag
関連
サンプル：
Assert sscanf( "===[123] [456]===", "[%s]" ) = "123"
Assert sscanf( "===[ [ 123 ] ]===", "[%s]" ) = " [ 123 "
複数にマッチする場合、最も左にあるものとマッチします
→ grep (検索)
← ▼ ▲
InStrEx
Function InStrEx( WholeString as string, Keyword as string, StartIndex as integer,
Opt as integer ) as integer
オプションを指定して文字列を検索します。
【引数】
WholeString
Keyword
検索対象になる文字列
検索するキーワード
StartIndex
検索を開始する位置。先頭=1。 全体を検索=0
返り値
Opt
下記のフラグ、または Empty
見つかった文字列の先頭の位置。 0=見つからなかった
サンプル
単語全体にマッチする文字列を検索します
Dim c : Set c = g_VBS_Lib
Assert InStrEx( "answer ans", "ans", 1, c.WholeWord or c.CaseSensitive ) = 8
Opt 引数
c.WholeWord
下記のフラグを複数指定するときは、or で接続してください。
なお、c は、g_VBS_Lib の返り値です。
英語の単語全体にマッチする文字列を検索します。
このフラグを指定しなければ、単語の一部にキーワードを含む単語も
検索にヒットします。
c.Rev
c.CaseSensitive
大文字、小文字を区別します。
このフラグを指定しなければ、大文字、小文字が異なる文字列も
検索にヒットします。
前方に向かって検索します。
このフラグを指定しなければ、後方に向かって検索します。
"answer ans", "ans"
テスト
→ T_Str.vbs # [T_InStrEx]
c.LastNextPos
返り値を、見つかった文字列の末尾の次の位置にします。
(src)
→ IsWholeWord
参考
参考
→ InStrLast
← ▼ ▲
InStrLast
Function InStrLast( WholeString as string, Keyword as string ) as integer
文字列を検索して、最初に見つかったキーワードの末尾の次の位置を返します。
【引数】
WholeString
Keyword
検索対象になる文字列
検索するキーワード
vbslib
モジュール・シンボル：
返り値
キーワードの末尾の次の位置、見つからない=0
(src)
→ T_Str.vbs # [T_InStrLast]
テスト
InStrLast( "ABCDEF", "CD" ) = 5 '// E の位置
サンプル
→ InStrEx
関連
← ▼ ▲
IsWholeWord
(src)
Function IsWholeWord( WholeString as string, StartIndex as integer, SubWordLen as integer )
as integer
文字列の中の指定した範囲が、単語単位になっているかどうかを返します。
【引数】
WholeString
StartIndex
検索対象になる文字列
範囲の開始位置。 先頭=1。文字単位
vbslib
モジュール・シンボル：
SubWordLen
範囲の長さ（文字数）
単語単位になっているかどうか
返り値
サンプル
Assert IsWholeWord( "This is a pen.", 6, 2 ) = True
Assert IsWholeWord( "This", 2, 2 ) = False
Assert IsWholeWord( "This is", 1, 7 ) = True
範囲の中に複数の単語があっても、両端が単語の単位になっていれば True になります。
→ InStrEx
関連
← ▼ ▲
StrMatchKey クラス
(src)
.Keyword
.IsMatch
Function StrMatchKey::IsMatch( TestStr as string ) as Boolean
* のワイルドカードを使って、マッチするかどうかを高速に判定します。
* は２つ以上指定できません。エラーになります。
Property Keyword as string
ワイルドカードを含むキーワード。
TestStr が、.Keyword で設定したワイルドカードにマッチするかどうかを返す。
大文字小文字を区別しません。
.IsMatchULCase
TestStr が、.Keyword で設定したワイルドカードにマッチするかどうかを返す。
大文字小文字を区別します。
Function StrMatchKey::IsMatch( TestStr as string ) as Boolean
サンプル：
Dim match : Set match = new StrMatchKey
match.Keyword = LCase( "*.TXT" )
If match.IsMatch( "file1.txt" ) Then
:
End If
file1.txt
*.TXT
大文字小文字を区別しないときは、LCase を使って小文字にしてください。
テスト
→ T_Wildcard.vbs # [T_StrMatchKey]
.Test
.IgnoreCase
RegExp と同じ
関連
→ ReplaceFileNameWildcard
← ▼ ▲
StringStream クラス
文字列を
TextStream
と同じようにアクセスします。
.SetString( Str as string )
.ReadLine
.AtEndOfStream
1行入力します。 TextStream 互換
すべて入力したかどうか。 TextStream 互換
全体の文字列を設定し、ファイルポインタを先頭に戻す。
(src)
Set file = new StringStream
file.SetString "123" +vbCRLF+ "456"
Do Until file.AtEndOfStream()
echo file.ReadLine() ' 改行(vbCR+vbLF)は含まない
Loop
file = Empty
テスト
→ T_Replace_target.vbs # T_StringStream
改行文字は、vbLF でも構いません。
.ReadAll
.Write
.WriteLine
全体を入力します。 TextStream 互換
文字列を出力します。 TextStream 互換
１行を出力します。 TextStream 互換
出力した文字列は、ReadAll で取得できます。
Write したものを先頭から Read するときは、ReadAll したものを SetString してください。
サンプル
文字列からリードする
Set file = new StringStream
file.WriteLine "123"
file.WriteLine "456"
Assert file.ReadAll() = "123"+ vbCRLF +"456"+ vbCRLF
file = Empty
文字列へライトする
サンプル
← ▼ ▲
CutLineFeedAtRightEnd
Function CutLineFeedAtRightEnd( Text as string, Width as integer ) as string
コマンドプロンプトの右端からあふれた文字列を１行にまとめます。
【引数】
Text
Width
コマンドプロンプトからコピーした文字列
コマンドプロンプトの幅
ToolsLib.vbs
モジュール・シンボル：
修正した文字列
返り値
(src)
サンプル
01234567890123456789
ABCDEFGHIJKLMNOPQRST
UVWXYZ
END
Width = 20 の場合、
ABCDEFGHIJKLMNOPQRSTUVWXYZ
END
← ▼ ▲
その他
→ (CSV) ArrayFromCSV, ArrayFromCSV_Int
→ XmlAttr
→ OpenForReplace
テキストファイルの内容を変更します。
" " で囲む XML の属性値に変換します。
CSV 形式の１行を配列に格納する。
→ ファイル名・パス
→ IsWildcard
→ CutCRLF
改行文字を削除します。
← ▼ ▲
日付 (Date)
←
↓