(for Internet Explorer)
← ▼ ▲
↑
NumStringNameCompare
Function NumStringNameCompare( Left as variant, Right as variant, Param as variant ) as integer
Name プロパティの文字列の中の数字を複数桁の正の整数値として比較します。
比較関数型
です。
→ NumStringCompare
参考
(src)
テスト
→ T_QSort.vbs
T_NumStringNameCompare
比較する処理の詳細
Param 引数には、Empty または
c.CaseSensitive
を指定してください。
→ vbslib.vbs
ソース
← ▼ ▲
LengthCompare
Function LengthCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターの長さを比較します。
文字列型のときは、文字列の長さを比較します。
Param がマイナスなら、返り値の正と負が入れ替わります。
比較関数型
です。
(src)
→ vbslib.vbs
ソース
← ▼ ▲
LengthNameCompare
Function LengthNameCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのパラメーターの Name プロパティを LengthCompare で比較します。
比較関数型
です。
(src)
Param = -1 にすると、逆順になります。
→ vbslib.vbs
ソース
← ▼ ▲
PathCompare
Function PathCompare( Left as string, Right as string, Param as variant ) as integer
２つの文字列をパスとして比較します。
比較関数型
です。
テスト
→ T_ShakerSort.vbs
T_SortByPath
参考
→ PathNameCompare
関連
→ PathNameCompare
パスとして比較する処理の詳細
→ vbslib.vbs
ソース
← ▼ ▲
PathNameCompare
Function PathNameCompare( Left as variant, Right as variant, Param as variant ) as integer
２つのオブジェクトの Name プロパティをパスとして比較します。
比較関数型
です。
テスト
→ T_ShakerSort.vbs
T_SortByPath
サンプル
arr = ArrayToNameOnlyClassArray( Array( "F", "EE\!", "EE\*", "EE", "E!E", "E\F", "E" ) )
ShakerSort arr, 0, UBound( arr ), GetRef("PathNameCompare"), Empty
arr = NameOnlyClassArrayToArray( arr )
Assert IsSameArray( arr, Array( "E", "E\F", "E!E", "EE", "EE\*", "EE\!", "F" ) )
フォルダーの中にあるフォルダーやファイルは、連続します。
たとえば、通常の文字コードでソートしたら "A!B", "A\!", "A\*", "A\C" の順になりますが、
PathNameCompare では、"A\*", "A\!", "A\C", "A!B" の順になります。
フォルダー区切り記号（\,/）、ワイルドカード（*）、ピリオド（.）を、文字コードが小さい文字（タブ）
として処理します。
→ vbslib.vbs
ソース
Param を負の値とすると、大小比較の結果が逆になります。
そうでないときは、Param = Empty または Param を正の値にしてください。
関連
→ PathCompare
→ ExpandWildcard_Sort 変数
→ NumStringCompare
参考
ファイル名でソート
したときのように、数字は整数として比較します。
参考
→ Ascii コード
← ▼ ▲
NoCompareFunction
Function NoCompareFunction( Left as variant, Right as variant, Param as variant ) as integer
Param 引数の内容をそのまま返します。
比較関数型
です。
→ vbslib.vbs
ソース
← ▼ ▲
IsReverseSortOption
Function IsReverseSortOption( in_Option as variant ) as boolean
逆順でソートするオプションが指定されているかどうかを返します。
ソース
in_Option 引数の値
返り値
Empty
False
False
c.CaseSensitive
-1
True
0
+1
False
False
テスト
→ T_ShakerSort.vbs
→ vbslib.vbs
← ▼ ▲
関連
→ QuickSort_fromDic
→ ShakerSort_fromDic
→ ShakerSort_fromDicKey
→ ShakerSortDicByKey
→ PArray_doShakerSort (clib)
→ XmlSort
→ SearchInSimpleArray
← ▼ ▲
文字列
関連
→ ファイル名・パス
← ▼ ▲
CInt2
Function CInt2( v as string ) as integer
CInt でエラーが発生する値を v に指定したときは、0 を返します。
文字列を数値に変換します。
(src)
VBScript では、CInt は、符号付き16ビット整数ですが、CInt2 は
CLng に相当する 符号付き32ビット整数に対応しています。
関連
→ Eval
→ CLng("&h8000")
→ GetNumWithZeroAtLeft
← ▼ ▲
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)
← ▼ ▲
AlignString
Function AlignString( in_InputData as integer, in_MinimumLength as integer,
in_FillingCharacter as string, in_ValueIfOver as Empty or string ) as string
文字列や数値の左または右に、空白や 0 などを並べて、幅を合わせた文字列に変換します。
out = AlignString( "a", 3, " ", Empty ) : Assert out = " a"
out = AlignString( 123, 6, "0", Empty ) : Assert out = "000123"
out = AlignString(-123, 6, " ", Empty ) : Assert out = " -123"
out = AlignString( "AB",-5," ", Empty ) : Assert out = "AB "
out = AlignString(-123, 3, " ", "###" ) : Assert out = "###"
out = AlignString(-123, 3, " ", Empty ) : Assert out = "-123"
out = AlignString(-123, 6, " ", "###" ) : Assert out = " -123"
【引数】
in_InputData
in_MinimumLength
変換される文字列や数値
返り値の文字数の最小値、マイナス=左詰め
in_ValueIfOver
in_MinimumLength を超えたときの返り値、または、Empty
サンプル
幅を合わせた文字列
返り値
ソース
→ vbslib.vbs
in_ValueIfOver = Empty のときは、返り値が in_MinimumLength を超える文字数になる
可能性があります。
テスト
→ T_Str.vbs
T_AlignString
in_FillingCharacter
幅を広げるときに並べる文字
← ▼ ▲
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"
→ GetPathWithSeparator
Path の最後を区切り記号にします
ファイル名（拡張子を除く）の最後を削除します
文字列の末尾を比較します
→ GetLastSeparatorOfPath
末尾にあるフォルダーの区切り記号を返します
← ▼ ▲
LenK
Function LenK( Str as string ) as integer
英文字を 1文字、日本語（文字コード256以上）を 2文字として文字数を返します。
サンプル：
LenK( "123" ) = 3
LenK( "123あいう" ) = 9
Len( "123あいう" ) = 6
(src)
→ GetLineNumsExistNotEnglighChar
関連
← ▼ ▲
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]
← ▼ ▲
GetTab
(src)
Function GetTab( Level as integer ) as string
インデント数を指定して、空白文字を返します。
インデント数×２の空白文字を返します。
→ CutIndentOfMultiLineText
関連
← ▼ ▲
CutLineFeedAtRightEnd
Function CutLineFeedAtRightEnd( Text as string, Width as integer ) as string
コマンドプロンプトの右端からあふれた文字列を１行にまとめます。
【引数】
Text
Width
コマンドプロンプトからコピーした文字列
コマンドプロンプトの幅
修正した文字列
返り値
サンプル
01234567890123456789
ABCDEFGHIJKLMNOPQRST
UVWXYZ
END
Width = 20 の場合、
ABCDEFGHIJKLMNOPQRSTUVWXYZ
END
→ ToolsLib.vbs
ソース
← ▼ ▲
StrCompOption
Function StrCompOption( Opt as integer ) as integer
StrComp
の Option 引数に指定する値を返します。
Opt 引数の値
返り値
Empty
vbBinaryCompare (=0)
vbTextCompare (=1)
大文字小文字は区別しない
大文字小文字は区別する
c.CaseSensitive
その他
vbTextCompare (=1)
いろいろな関数の Opt 引数が、StrCompOption の Opt 引数と同じ意味を持つことが
よくあります。
Set c = g_VBS_Lib
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
Set c = g_VBS_Lib
If StrComp( "ABC", "BC", StrCompOption( c.CaseSensitive ) ) = 0 Then ...
→ CompareFunction 型、比較関数型
関連
サンプル
サンプル
テスト
→ T_ShakerSort.vbs
ソース
→ vbslib.vbs
← ▼ ▲
→ 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
StrCompHeadOf
比較関数型
です。
"AAA"
"ABCDE"
0以外(=異なる)、正の値
"ABCDE"
""
0 (=一致)
または c.AsPath
0 のとき、c.AsPath が設定されていないとき、
c.AsPath が設定されているとき、
0 (=一致)
"ABC\"
"ABC\DE"
0 (=一致)
"ABC/DE"
"ABC"
"ABC\DE"
"ABC"
0 (=一致)
0以外(=異なる)、正の値
"ABC"
"ABCDE"
返り値
LastStr 引数の値
Str 引数の値
"ABC\"
0以外(=異なる)、負の値
"ABC"
0 (=一致)
"."
"ABCDE"
""
0 (=一致)
"ABCDE"
0以外(=異なる)
Empty (*1)
"ABCDE"
*1
LastStr 引数 = Empty のときは、親フォルダーがなく、該当する親フォルダーに
入っていないために「異なる」という結果にしています。
→ vbslib.vbs
ソース
← ▼ ▲
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
比較関数型
です。
← ▼ ▲
AddIfNotExist
(src)
Function AddIfNotExist( WholeStr as string, AddStr as string, Separator as string,
Opt ) as string
列挙された文字列のどれにも一致しなければ、先頭に追加します。
【引数】
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%"), _
GetFullPath( "..\bin", Empty ), ";", Empty )
サンプル
PATH 環境変数
→ T_Str.vbs # [T_AddIfNotExist]
テスト
に "..\bin" フォルダーのフル・パスを追加する
→ GetPathWithSeparator
関連
XYZ
XYZ
← ▼ ▲
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]
テスト
→ MeltCmdLine
サンプル
Assert MeltCmdLine( """double_quotation""", 1 ) = "double_quotation"
サンプル
← ▼ ▲
sprintf
C言語の printf 書式
Function sprintf( in_Format as string, in_Parameter as array of integer ) as string
で整形した文字列を返します。
【引数】
in_Format
in_Parameter
C言語の printf 書式
C言語の printf 書式のパラメーター
返り値
C言語の printf 書式で整形した文字列
サンプル
C言語の printf 書式のすべてはサポートしていません。
%d と %s は、そのまま文字列に挿入します。
%02d のように 0 から始まる数値が % と d の間にあれば、その桁数だけ上位に 0 が付きます。
% と d の間だけでなく、d 以外でも上位に 0 が付きます。
%X または %d は、16進数に変換して挿入します。 10進数の 10〜15 は、%X では A〜F、%x
では a〜f になります。
Assert sprintf( "number = %d", Array( 2 ) ) = "number = 2"
Assert sprintf( "n = %02d, %02d, %02d", Array( 3, 5, 10 ) ) = "n = 03, 05, 10"
Assert sprintf( "0x%X, 0x%X, 0x%X, 0x%x", Array( 8, 9, 10, 11 ) ) = "0x8, 0x9, 0xA, 0xb"
Assert sprintf( "alphabet = %s", Array( "A" ) ) = "alphabet = A"
Assert sprintf( "alphabet = (%-4s)", Array( "A" ) ) = "alphabet = (A )"
→ T_Str.vbs
テスト
ソース
→ vbslib.vbs
T_sprintf
関連
→ sscanf
← ▼ ▲
sscanf
Function sscanf( String, Format )
文字列の途中を取り出します。
【引数】
String
Format
文字列全体
取り出す部分を指定する文字列。 "%d" または "%s" を含む
vbslib.vbs
ファイル：
返り値
取り出した文字列、または、数値
サンプル：
Assert sscanf( "ABC123DEF", "ABC%dDEF" ) = 123
数値を取り出すときは、%d を使います。
文字列を取り出すときは、%s を使います。
Assert sscanf( "===[ABC]===", "[%s]" ) = "ABC"
サンプル：
→ T_Str.vbs
テスト
→ ReadFileInTag
関連
サンプル：
Assert sscanf( "===[123] [456]===", "[%s]" ) = "123"
Assert sscanf( "===[ [ 123 ] ]===", "[%s]" ) = " [ 123 "
複数にマッチする場合、最も左にあるものとマッチします
→ grep (検索)
%d, %s 以外の部分がマッチしないときは、エラーになります。
→ ScanFromTemplate
→ ScanMultipleFromTemplate
ソース
→ vbslib.vbs
T_sscanf
→ sprintf
← ▼ ▲
ScanFromTemplate
Function ScanFromTemplate( ScanString as string, TemplateString as string,
KeywordArray as array of string, Option_ as Empty ) as dictionary of string
文字列の途中を複数取り出します。
【引数】
ScanString
TemplateString
取り出す文字列を含む文字列
取り出す部分を指定する文字列
KeywordArray
TemplateString に書かれた取り出す部分の文字列の配列
→ T_Str.vbs
テスト
Empty または g_VBSLib.WithDollarVariable
Option_
サンプル
Set out = ScanFromTemplate(_
"ab12cde34xyz",_
"b${First}cde${Second}xy",_
Array( "${First}", "${Second}" ), Empty )
Assert out("${First}") = "12"
Assert out("${Second}") = "34"
KeywordArray 配列の要素は、TemplateString の中に含まれる順番に指定してください。
KeywordArray 配列の要素は、${ } や % % で囲んだ形式である必要はありません。
大文字小文字は区別します。
${ 文字を指定するときに $\{ を指定したときは、Option_ に g_VBSLib.WithDollarVariable
を指定してください。
→ vbslib.vbs
ソース
取り出した文字列の辞書
返り値
ScanString が TemplateString にマッチしないときは、エラーになります。
関連
→ sscanf
→ ScanMultipleFromTemplate
→ ParsePercentVariableString
→ SearchStringTemplate
T_ScanFromTemplate
Set out = ScanFromTemplate(_
"abc def ghi"+ vbCRLF,_
"%A% %B% %C%",_
Array( "%A%", "%B%", "%C%" ), Empty )
Assert out("%A%") = "abc"
Assert out("%B%") = "def"
Assert out("%C%") = "ghi"+ vbCRLF
サンプル
変数が TemplateString 引数の端にあるとき
→ SearchStringTemplate
←
↓