(for Internet Explorer)
← ▼ ▲
↑
ConnectInTextSectionIndexFile
Sub ConnectInTextSectionIndexFile( in_IndexFilePath as string,
in_KeywordAndName as array of array of string, in_Empty as Empty )
セクション インデックス ファイルの中の指定したセクションを前のセクションとつなげる。
【引数】
in_IndexFilePath
in_KeywordAndName
セクション インデックス ファイルのパス
前のセクションとつなげるセクションのキーワードと名前の配列
in_Empty
Empty を指定してください
サンプル
_txsc\(ファイル名.拡張子).txsc の例
<File path="..\Sample.c" type="C_Type">
<TextSection keyword="Function" name="StartA" start_line="100" end_line="129"
next_to_comment_line="110"/>
<TextSection keyword="Function" name="StartB" start_line="130" end_line="159"
next_to_comment_line="140"/>
</File>
ConnectInTextSectionIndexFile "Sample.c", Array( Array( "Function", "StartB" ) )
上記 TextSection タグをつなげるスクリプト：
つなげた後の.txsc ファイルの例：
<File path="..\Sample.c" type="C_Type">
<TextSection keyword="Function" name="StartA" start_line="100" end_line="159"
next_to_comment_line="110"/>
</File>
← ▼ ▲
OpenForWriteTextSection
Set file = OpenForWriteTextSection( "file.txt", Empty, Empty )
file.Cut "Section1"
file = Empty
Function OpenForWriteTextSection( SourcePath as string, DestinationPath as string,
Option_ as Empty ) as WriteTextSectionClass
セクション化されたテキストの編集を開始します。
【引数】
SourcePath
DestinationPath
編集前のセクション化されたテキスト・ファイルのパス
編集した結果を出力するファイルのパス、または、Empty
Option_
Empty を指定してください
関連
テスト
サンプル
ソース
→ 構造化テキストフォーマット (Module Mixer)
→ ToolsLib.vbs
→ T_TextSection.vbs
返り値
WriteTextSectionClass
→ WriteTextSectionClass
→ Cut (WriteTextSectionClass)
返り値のオブジェクトの参照カウンターが 0 になったら、ファイルに出力されます。
セクション化されたテキスト
セクションを削除します。
file.txt ファイルの中の、"Section1" を含むセクションを削除します。
→ UsesSection (Mxp_Symbol)
→ PickUp (WriteTextSectionClass)
残すセクションを選択します。
← ▼ ▲
Cut (WriteTextSectionClass)
Sub WriteTextSectionClass::Cut( Key as string )
セクションを削除します。
【引数】
Key
セクションの中に含まれる文字列
ソース
→ ToolsLib.vbs
← ▼ ▲
PickUp (WriteTextSectionClass)
Sub WriteTextSectionClass::PickUp( Key as string )
残すセクションを選択します。
【引数】
Key
セクションの中に含まれる文字列
ソース
→ ToolsLib.vbs
本関数を１度でも呼び出すと、WriteTextSectionClass のオブジェクトの参照カウンターが 0
になったとき、選択されなかったセクションはすべて削除されます。
本関数を１度も呼び出さなかったときは、すべてのセクションが残ります。
← ▼ ▲
.ini ファイル
関連
→ OpenForRegFile
[SectionX]
SettingA = abc
SettingB = 12
; comment
[SectionY]
SettingA = BC
下記の形式のテキストファイルで記述された設定値を扱います。
行末までのコメント記号は、行頭のみ対応
空行も可能
セクション名は省略可能
→ GetIniFileTextValue
→ SetIniFileTextValue
→ RenumberIniFileData
→ ParseIniFileLine
← ▼ ▲
ParseIniFileLine
Function ParseIniFileLine( Line as string ) as ParsedIniFileLineClass
.ini ファイルに書かれた行を解析します。
【引数】
Line
.ini ファイルの中の１行
解析結果
返り値
Set line = ParseIniFileLine( "[Section1]" )
'// line.Section = "Section1"
'// line.Name = Empty
'// line.Value = Empty
Set line = ParseIniFileLine( "Name = Value" )
'// line.Section = Empty
'// line.Name = "Name"
'// line.Value = "Value"
Set line = ParseIniFileLine( "Name =" )
'// line.Section = Empty
'// line.Name = "Name"
'// line.Value = ""
Set line = ParseIniFileLine( "comment" )
'// line.Section = Empty
'// line.Name = Empty
'// line.Value = Empty
サンプル
[ ] で囲まれた行は、セクション名として解析します。
= がない行は、コメント行として解析します。
ParsedIniFileLineClass
.Section
.Name
.Value
セクション名
左辺
右辺
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
T_GetIniFileTextValue
← ▼ ▲
GetIniFileTextValue
Function GetIniFileTextValue( IniText as string, SectionName as string,
VariableName as string, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
関連
テスト
ソース
変数の設定値
返り値
Empty を指定してください
Option_
→ vbslib.vbs
→ T_IniFile.vbs
→ SetIniFileTextValue
T_GetIniFileTextValue
Assert GetIniFileTextValue( text, Empty, "NameA", Empty ) = "Value"
サンプル
該当する変数が存在しないときは、Empty が返ります。
[ 親: .ini ファイル ]
→ GetIniFileTextValues
Assert GetIniFileTextValue( text, "SectionB", "NameA", Empty ) = "Value"
← ▼ ▲
GetIniFileTextValues
Function GetIniFileTextValues( IniText as string, SectionName as string,
VariableName as string, Option_ as Empty ) as array of string
.ini ファイルに書かれた設定値を複数参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
変数の設定値の配列
返り値
Empty を指定してください
Option_
該当する変数が存在しないときは、空の配列が返ります。
サンプル
Assert IsSameArray( GetIniFileTextValues( text, "Section", "NameA", Empty ), _
Array( "Value1", "Value2" )
テスト
ソース
→ T_IniFile.vbs
T_GetIniFileTextValue
→ vbslib.vbs
← ▼ ▲
SetIniFileTextValue
after_text = SetIniFileTextValue( before_text, Empty, "NameA", "Value", Empty )
Function SetIniFileTextValue( IniText as string, SectionName as string,
VariableName as string, Value as Variant, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を変更します。
【引数】
IniText
SectionName
変更前の .ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
サンプル
変更後の .ini ファイルの内容
返り値
Empty を指定してください
変更後の変数の設定値
Option_
Value
関連
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
→ GetIniFileTextValue
T_SetIniFileTextValue
該当する変数が存在しないときは、エラーになります。
[ 親: .ini ファイル ]
← ▼ ▲
RenumberIniFileData
Sub RenumberIniFileData( ReadStream as TextStream, WriteStream as TextStream,
StartNumber as integer, IsPlusSpaceLineOnly as boolean )
.ini ファイルの内容のうち、= より左にある ( ) の中の番号を振り直します。
【引数】
ReadStream
入力ストリーム
WriteStream
出力ストリーム
開始番号
StartNumber
→ StringStream クラス
→ StringStream クラス
空行があるときだけ番号を＋１するかどうか
IsPlusSpaceLineOnly
サンプル・データ
Data(2) = ABC
Data(5) = DEF
Data(6) = DEF
Data(1) = ABC
Data(2) = DEF
Data(3) = DEF
入力
出力
→ RenumberIniFileData コマンド
関連
ソース
→ vbslib.vbs
[ 親: .ini ファイル ]
← ▼ ▲
ParseJSON
Function ParseJSON( JSON_String as string ) as JS_Object
JSON をパース（構文解析）します。
【引数】
JSON_String
返り値
JSON 形式の文字列データ
JSON のデータにアクセスできるオブジェクト
Set json = ParseJSON( "{'attribute_1':'One', 'attr2':'Two'}" )
echo json.attribute_1 '// "One"
サンプル
→ JSON (JavaScript Object Notation)
参考
(src)
省略された属性に対して、返り値から参照しようとすると、エラー 438 になります。
← ▼ ▲
C言語
関連
→ 開発環境操作
← ▼ ▲
CutSharpIf
CutSharpIf "sample.c", Empty, "SAMPLE", True
Sub CutSharpIf( InputPath as string, OutputPath as string, Symbol as string, IsCutTrue as boolean )
#ifdef 〜 #endif をカットします。
【引数】
InputPath
OutputPath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
Symbol
#define シンボル、または、#if の条件文
関連
テスト
サンプル
ソース
T_CutSharpIf
IsCutTrue
→ GetInputOutputFilePaths
→ GetInputOutputFilePaths
#if が真の部分をカットする(True)か、偽の部分をカットする(False)か
→ T_CutSharpIf.vbs
→ CutSharpIf コマンド
→ ToolsLib.vbs
CutSharpIf "FolderA", "FolderB", "SAMPLE_A || SAMPLE_B", False
→ ParsedRanges_getCut_by_PP_Directive
→ vbslib_helper.c
← ▼ ▲
CutCommentC
Sub CutCommentC( in_Path as string, in_Empty as Empty )
C/C++言語のソース ファイルからコメントを削除します。
【引数】
in_Path
コメントを削除するソース ファイルのパス
in_Empty
Empty を指定してください（予約）
→ clib - CutCommentC_1
サンプル
コメントを削除する前の内容は上書きされて無くなるので、バックアップを取ってから実行して
ください。
テスト
→ T_CutCommentC.vbs
ソース
→ ToolsLib.vbs
→ vbslib_helper.c
Set w_=AppKey.NewWritable( "Folder" ).Enable()
CutCommentC "Folder\Source.c", Empty
NewWritable
"Folder\Source.c"
参考
→ CutComment コマンド
T_CutCommentC
ArrayFromWildcard
in_Path 引数には、
の引数のように ワイルドカードなどを指定できます。
← ▼ ▲
MakeDocumentByNaturalDocs
テスト
→ T_NaturalDocs.vbs
→ ToolsLib.vbs
ソース
MakeDocumentByNaturalDocs "src", "HTML", Empty
Sub MakeDocumentByNaturalDocs( SourceRootPath as string, DocumentRootPath as string,
Options as Empty )
Natural Docs を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
Natural Docs や ActivePerl がインストールされていないと、インストールを即す警告が表示
されます。
→ Setting_getNaturalDocsPerlPath
参考
→ GetPerlVersion
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー（キャッシュ）を作り直します。 プロジェクトフォルダーは、
テンポラリ・フォルダー
の中に作られ、日付が変わると作り直します。
補足
→ Natural Docs
参考
g_Vers("NaturalDocsExtension")
を設定すると、Natural Docs に入力する拡張子を
変更できます。
ソースファイルは、現在のコードページ（日本なら Shift-JIS）、または Unicode（UTF-16) に
してください。
→ NaturalDocs コマンド
関連
→ MakeDocumentBy_doxygen
← ▼ ▲
MakeDocumentBy_doxygen
→ doxygen コマンド
MakeDocumentBy_doxygen "src", "HTML", Empty
Sub MakeDocumentBy_doxygen( SourceRootPath as string, DocumentRootPath as string,
Options as Empty )
doxygen を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
参考
ソースファイルは、現在のコードページ（日本なら Shift-JIS）、または Unicode（UTF-16) に
してください。
→ doxygen
関連
→ MakeDocumentByNaturalDocs
テスト
→ T_doxygen.vbs
→ ToolsLib.vbs
ソース
doxygen がインストールされていないと、インストールを即す警告が表示されます。
参考
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー（キャッシュ）を作り直します。 プロジェクトフォルダーは、
テンポラリ・フォルダー
の中に作られ、日付が変わると作り直します。
補足
g_Vers("NaturalDocsExtension")
を設定すると、Natural Docs に入力する拡張子を
変更できます。
→ Setting_getDoxygenPath
← ▼ ▲
ConvertDocumetCommentFormat
Sub ConvertDocumetCommentFormat( InputPath as string, OutputPath as string,
InputFormat as string, OutputFormatFilePath as string )
プログラムのソースファイルの中にある、ドキュメントに変換できるコメントの形式を変換します。
【引数】
InputPath
OutputPath
InputFormat
現在、"NaturalDocs" のみ指定できます
→ ToolsLib.vbs
テスト
ソース
→ T_TextSection.vbs
T_ConvertDCF
出力するコメントのテンプレートが書かれたファイルのパス
OutputFormatFilePath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
→ GetInputOutputFilePaths
→ GetInputOutputFilePaths
→ T_ConvertDCF フォルダー
サンプル
コールツリー
vbslib_helper.exe
ConvertDCF_Class_convert
NaturalCommentClass_printXML
NaturalDocsHeaderClass
(src)
ConvertDCF_onXML_Element
if ( _tcsicmp( in_Status->TagName, _T("Text") ) == 0 ) {
ConvertDCF_Class::Comments.ID
(src)
(src)
NaturalCommentClass
(src)
ConvertDCF_CommentClass_getReplaced
(src)
/* Set "descriptions" : Replaced from "${Descriptions}" */
(src)
ConvertDocumentCommentFormat
ConvertDocumetCommentFormat
１つのコメントを置き換える
MakeNaturalComments_C_Language
NaturalDocs 形式コメントをパースする
現在、C言語の NaturalDocs 形式コメントから、doygen (Javadoc)形式コメントへの変換の
一部のみ可能です。
→ ConvertDocumetCommentFormat コマンド
関連
(src)
← ▼ ▲
DoTextShrink
Sub DoTextShrink( TxMxFilePath as string, Option as Empty )
セクション（NaturalDocs で区切ったソース ファイル）のうち、使用していないセクションを削除します。
【引数】
TxMxFilePath
Option
編集するファイルなどが記述された .txmx ファイルのパス（下記）
Empty を指定してください
テスト
→ T_TextSection.vbs
T_TextShrink
コールツリー
ListUpTextShrinkKeywords
TxMxClass
(src)
DoTextShrink
(src)
ListUpUsingTxMxKeywords
vbs(src)
MakeShrinkedSectionsFile
(src)
ListUpUsingTxMxKeywords
c(src)
DoTextMix
MakeTextSectionIndexFile
vbs(src)
MakeTextSectionIndexFile
c(src)
TxMxListUp_listUpUsedNames
c(src)
TxMxListUp_readSetting
T_MakeTxScFile
MakeNaturalComments_C_Language
NaturalCommentClass
→ T_TextShrink フォルダー
ソース
→ ToolsLib.vbs
→ DoTextShrink コマンド
関連
CreateFromTextSections
← ▼ ▲
(CSV) ArrayFromCSV, ArrayFromCSV_Int
CSV 形式の１行を解析して、それぞれの項目を配列に格納します。
Function ArrayFromCSV( a_CSV as string ) as Array of string
For Each column In ArrayFromCSV( "ABC , DEF" )
Next
【引数】
a_CSV
返り値
CSV 形式の１行
（出力）CSV の項目が入った配列
関連
→ Split
各項目の両端の空白が削除されたものが戻ります。
項目の端に空白文字がある場合と、項目の中にコンマやダブルクォーテーション(")が
あるときは、" " で囲んでください。 ただし、ダブルクォーテーション1文字あたり、
ダブルクォーテーションを２つ並べてください。
→ T_CSV.vbs # ArrayFromCSV
テスト
→ MeltCSV
(src)
Function ArrayFromCSV_Int( a_CSV as string ) as Array of integer
上記 ArrayFromCSV の返り値は、Array( "ABC", "DEF" )
ABC , DEF
A, " ""ABC,"" "
A
"ABC,"
CSV：
各項目：
VBS：
ArrayFromCSV( "A, "" """"ABC,"""" """ )
CSV とは別に、VBS も同様に " 文字は " を２つ並べる
"A, ,C" の真ん中の要素のように、何も無いときは、配列の要素が Empty になります。
"A, " のように最後がコンマのときは、配列の最後の要素が Empty になります
" " のように、空白文字や空文字列のときは、配列要素数が 0 になります。
ArrayFromCSV( "A,,C" ) = Array( "A", Empty, "C" )
ArrayFromCSV( "A," ) = Array( "A", Empty )
要素に "" （ダブルクオーテーション２つだけ）が指定されたときは、空文字列になります。
ArrayFromCSV( "A, """"" ) = Array( "A", "" )
ArrayFromCSV( " " ) = Array( )
複数行の文字列を指定するときは、最後の行以外の行末を "," にしてください。
ArrayFromCSV( "A, B," +vbCRLF+ "C, D," +vbCRLF+ "E, F" )
= Array( "A","B","C","D","E","F" )
A, B,
C, D,
E, F
つまり
＝
A, B, C, D, E, F
→ ArrayFromCmdLine
サンプル
→ AddCSV (ArrayClass)
性能について
本関数は処理が遅いです。
CSV ファイルのデータは、1行に対応するクラスの配列にキャッシュしておくと速くなります。
paths = ArrayFromCSV( Replace( Trim2( multi_line_string ), vbCRLF, "," ) )
サンプル
複数行の文字列から、各行を配列にする
→ CSV (ArrayClass)
←
↓