(for Internet Explorer)
← ▼ ▲
↑
TranslateTest
→ TranslateTest 関数
翻訳ファイルの情報に従って、テキストファイルがすべて翻訳できているかどうかチェックします。
参考
番号またはコマンド >TranslateTest
英訳のテストをします。
★翻訳ファイル (*.trans) は上書きされます。
翻訳ファイル (*.trans) のパス、または、フォルダーのパス >C:\folder\sample.trans
Enter のみ ： 出力しませんが、翻訳後に日本語が残っていないことをチェックします
出力フォルダーのパス（★上書きされます）>
<WARNING msg="Not English character exists" line_num="3"/>
<WARNING msg="Not English character exists" line_num="4"/>
C:\folder\sample.trans
TranslateTest
[ 親: vbslib のショートハンド・プロンプト ]
を使って、*.trans ファイルの拡張子と関連付けすると、
*.trans ファイルをダブルクリックするだけですべて翻訳できているかどうかのチェックが
できるようになります。
→ CheckEnglishOnly (exeファイル)
→ ショートカットやバッチファイルなどから専用コマンドを実行する
参考
TranslateTest の関数
フォルダー全体に英語以外が無いか調べる
→ Translate コマンド
翻訳する関数
→ Translate 関数
翻訳するコマンド、翻訳ファイルの説明
TranslateTest_Install コマンド
→ vbslib Prompt.vbs
ソース
翻訳ファイルの内容は上書きされるため注意してください。
翻訳するファイル名と行番号が追記され、行番号の順番でソートされます。
← ▼ ▲
TranslateTest_Install
TranslateTest
*.lines ファイルをダブルクリックしたときに、
が起動するようにします。
関連
→ TranslateTest_Uninstall
→ vbslib Prompt.vbs
ソース
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
TranslateTest_Uninstall
TranslateTest
*.lines ファイルをダブルクリックしても、
が起動しないようにします。
→ vbslib Prompt.vbs
ソース
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
番号またはコマンド >TwoWayMerge
-------------------------------------------------------------------------------
2ウェイ マージ（2方向マージ）をします。
比較するファイル（左側） >C:\Left.txt
比較するファイル（右側） >C:\Right.txt
マージした結果の出力先ファイル（★上書きします） >C:\_Merged.txt
TwoWayMerge
2ウェイ マージ（2方向マージ）をします。
TwoWayMerge
C:\Left.txt
→ vbslib Prompt.vbs
ソース
→ ToolsLib.vbs
C:\Right.txt
C:\_Merged.txt
関連
→ ThreeWayMerge
→ diff 関数
← ▼ ▲
unzip
zip ファイルの中のルートに１つのフォルダーだけがあるときは、そのフォルダー
の中を展開します。
すでに zip ファイルと同じ名前のフォルダーがあったときは、これまであった
フォルダーを *_old に改名し、同じ名前のフォルダーに展開します。
すでに *_old フォルダーもあったときは、*_old2 フォルダーに改名します。
関連
→ unzip 関数
zip 形式の圧縮ファイルを展開します。
→ T_Zip.vbs # [T_unzip_sth]
テスト
番号またはコマンド >unzip
-------------------------------------------------------------
zip ファイルを展開します。
zip ファイルと同じ名前のフォルダーを作成し、その中に展開します。
zip ファイルのパス >C:\sample1.zip
"sample1_old" に改名しました。: "C:\sample1"
展開しました。
[ 親: vbslib のショートハンド・プロンプト ]
zip ファイルと同じ名前のフォルダーができ、その中に展開します。
unzip
C:\sample1.zip
← ▼ ▲
UpdateModule
関連
→ ModuleAssort
パッチ（新モジュールのフォルダーと旧モジュールのフォルダー）があるときに、
プロジェクト フォルダーの中にある旧モジュール（の一部を変更したもの）を新モジュール
（の一部を変更したもの）に置き換える、作業フォルダーをデスクトップの _UpdateModule に
作成して、モジュールを更新する作業を 3ウェイ マージを使って支援します。
番号またはコマンド >UpdateModule
-------------------------------------------------------------------------------
プロジェクト フォルダーの中にある、古いリビジョンのモジュールを、新しいリビジョ
ンに置き換えます。 作業フォルダーをデスクトップの _UpdateModule に作成します。
New ：新モジュールが入ったフォルダーのパス >C:\patch
Old ：旧モジュールが入ったフォルダーのパス >C:\back_up
Target：旧モジュールが入ったプロジェクト フォルダーのパス >C:\Target
Enter のみ：マージの設定ファイルを使わない。
マージの設定ファイル >
同期するファイルの一覧：
中央の記号の意味: [=]同じ [!]異なる [ ]両方不在
左右の記号の意味: [*]変更 [+]追加 [-]削除 [.]不変 [ ]不在
左はベース、右はワーク
-------------------------------------------------------------------------------
前回コミット時のベース: "2B_ModuleSynchronized"
前回コミット時のワーク: "1B_TargetSynchronized"
-------------------------------------------------------------------------------
■ベース（Module）: "2A_ModuleNew"
■ワーク（Target）: "1A_TargetMerged"
1. .=. Image.bmp
2. *!. Source.c
91. 再スキャンする [Rescan]
92. ルート・フォルダーを開く
99. 終了
番号 >2
-------------------------------------------------------------------------------
ベース：C:\2A_ModuleNew\Source.c"
ワーク：C:\1A_TargetMerged\Source.c"
次のメニューの 1.で開く２つのファイルを手動で同期したら、コミットしてください。
-------------------------------------------------------------------------------
★ベース（Module）: Source.c (*変更)
★ワーク（Target）: Source.c (.不変)
1. Diff で開く：同期するファイル (*異なる) [ ベース / ワーク ]
2. Diff で開く：前回コミット時の同期内容 (=同じ) [ ベース / ワーク ]
4. Diff で開く：ベース (*変更) [ 前回コミット時 / 現在 ]
5. Diff で開く：ワーク (.不変) [ 前回コミット時 / 現在 ]
44.Diff で開く：[ 前回コミット時のベース / ベース / ワーク ]
55.Diff で開く：[ ベース / ワーク / 前回コミット時のワーク ]
6. ファイルまたはフォルダーを開く
8. 同期をコミットする
9. 戻る
番号 >
同期が完了したら、その内容をプロジェクトに反映させてください。
同期済み："C:\1A_TargetMerged"
Targetプロジェクト："C:\Target"
UpdateModule
C:\Target
C:\patch
C:\back_up
参考
→ vbslib Prompt.vbs
ソース
テスト
→ T_ModuleAssort.vbs
T_UpdateModule_sth
→ SyncFilesX
プロジェクト フォルダーは、複数のモジュールからなるフォルダーという意味で、特別な構成をした
フォルダーではなく、普通のフォルダーです。 UpdateModule では、置き換える対象となる
モジュールを持っているプロジェクト フォルダーのことをターゲットと呼んでいます。
→ ThreeWayMerge
→ MakePatchAndBackUpDictionary
新旧モジュールからパッチをあてます
3ウェイ マージ
新旧の比較、プロジェクトとモジュールの比較
モジュール/ターゲット/リビジョンに分類
→ マージ設定ファイル
→ AttachPatchAndBackUpDictionary のテスト
→ SyncFilesX
→ SyncFilesX ソース
3ウェイ マージの Base, Left, Right は、UpdateModule の 4. Old (2B), 1. New (2A), 5. Target (1B)
です。 3ウェイ マージにおける、それぞれの差分と、上記メニュー（SyncFilesX のメニュー）との
対応は、次の通りです。 なお、可能な限り自動的にマージを行って 2. Merged(1A) を作成して
Menu-2 の差分が Menu-1 の差分と同じ、または、Menu-4 の差分が Menu-5 の差分と同じなら
一般にマージ完了です。 差分が少ないほうのペアで調整するとよいでしょう。
→ SyncFilesX を内部で使うツールとの比較
新モジュールが共通の旧モジュールからブランチしたものでも、それをマージするのであれば、
UpdateModule コマンドが使えます。
古いパッチを新しいターゲットにあてることもできますが、新旧の関係とベース/ワークの
関係が逆に表示されます。
「ベース」と表示されているものは、モジュール単体です。
「ワーク」と表示されているものは、ターゲット プロジェクトです。
「6. ファイルまたはフォルダーを開く」 で選ぶファイルの意味は、次のとおりです。
表示
UpdateModule コマンドでの意味
1. ベース
2. ワーク
4. 前回コミット時のベース
5. 前回コミット時のワーク
新モジュール単体 [New, 2A]
ターゲット（マージ後） [Merged, 1A]
コミット前は、旧モジュール単体 [Old, 2B]
コミット後は、新モジュール単体
コミット前は、ターゲット（マージ前） [Target, 1B]
コミット後は、ターゲット（マージ後）
いますが、2. Merged(1A) に
ThreeWayMerge
のコンフリクトのタグが付くこともあります。
4. Old (2B)
5. Target (1B)
1. New (2A)
2. Merged(1A)
Menu-1
Menu-4
Menu-5
Menu-2
4_Old (2B)
5_Target (1B)
1_New (2A)
2_Merged(1A)
Menu-1
Menu-4
Menu-5
Menu-2
← ▼ ▲
XmlText
テキストを XML/HTML の実体参照に変換します。
番号またはコマンド >XmlText
-------------------------------------------------------------------------------
テキストを XML/HTML の実体参照に変換します。
1) テキスト → XML/HTML テキストの実体参照 [ToRef]
番号またはコマンド名を入力してください >1
Enter のみ：クリップボードの内容を入力とします。
変換前のテキストが書かれたファイルのパス >
変換しました。
XmlText
1
→ XmlText
関連
連続空白
の置き換えは行いません。
← ▼ ▲
開発サポートツール
RepliCmp
PartRep
テキストファイルの一部を置き換えます。
PartCmp
テキストファイルの一部が同じかどうか比較します。
複数のフォルダで指定した名前のファイルの内容をマージする手助けをします。
vbslib_updater
vbslib を使ったスクリプトをバージョンアップする
Syncs
２つのファイルの同期を自動的に取ります
SearchNewFile
XmlFilter
新しく更新したファイルを探します
XML の一部を取り出します。
vbslib を使って作られたツールです。
vbslib を使うときに役に立つプログラムを参考に挙げます。
→ Rekisa
→ サクラエディタ (Web)
→ Microsoft Script Editor (Web)
→ Microsoft Visual Studio (Web)
→ Snap Note (Web)
→ 構造化エディタ (Web)
MS Office をフルインストールしたときに使えます
スクリプト・デバッガが使えるのは、Standard 以上
vbslib は構造化テキストになっています
ドキュメントからソースコードにジャンプできます
→ 開発環境操作、 Visual Studio
関連
ConvSymbol
C言語の #define から、数値と文字列の配列のコードを生成します。
テキスト比較 diff ツール
テキスト・エディター
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
CheckEnglishOnly (exeファイル)
テキストファイルが英語だけになっているかチェックします。
チェックするファイルまたはフォルダーのパス: TestData
設定ファイルのパス: TestData\SettingForCheckEnglish.ini
<FILE path="KanjiInUnicode.txt">
<LINE num="2" text="漢字"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
<FILE path="Sub\SJisInAscii.txt">
<LINE num="2" text="シフトJIS"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
出力の例：
[CheckEnglishOnlyExe]
ExceptFile = *.exe
ExceptFile = *.lib
ExceptFile = *.dll
; comment
ExceptFile = *\AnyFolder.txt
ExceptFile = Sub\StepPath.txt
ExceptFile = *\SubFolder\*
設定ファイルの例： Setting.ini
CheckEnglishOnly.exe /Folder:FolderA /Setting:Setting.ini
テキスト・ファイルの中に、英文字以外の文字が含まれるファイルを一覧します。
コマンド・プロンプトから実行してください。
【引数】
/Folder
/Setting
チェックするフォルダーのパス
設定ファイルのパス
関連
→ T_CheckEnglishOnly.vbs # T_CheckEnglishOnly
テスト
→ CheckEnglishOnly
vbslib 版
→ scriptlib\vbslib\CheckEnglishOnly フォルダー
→ _src\Test\tools\scriptlib\vbslib\CheckEnglishOnly フォルダー
ソース
→ TranslateTest
→ CheckEnglishOnly_src_121106.zip
実行ファイルまたはソースがある場所：
→ CheckEnglishOnly
コマンド・プロンプト版
* から始まる設定の場合は、すべてのフォルダーに対する設定になります。
相対パスの基準は、設定ファイルがあるフォルダーです。
相対パスの基準は、設定ファイルがあるフォルダーです。
ただし、/Setting オプションがないときは、チェックするフォルダーです。
← ▼ ▲
コールツリー （CheckEnglishOnly）
/Folder:"FolderPath" /Setting:"SettingForCheckEnglish.ini"
CheckEnglishOnly.exe
/* Set "except_names" : 設定ファイルに指定した "ExceptFile" */
→ CheckEnglishOnly.c
e= Set2_alloc( &except_names, &except_name, StrMatchKey );
CheckEnglishOnly
FileT_callByNestFind
/* "path" が、チェックをしないファイル "except_names" に含まれるならスキップする */
ファイル一覧、設定ファイル関係：
Main_getFilePathFromNestFind
if ( StrMatchKey_isMatch( except_name, path ) ) { break; }
/* Set "paths" : チェックするファイルのパスの集合。
if ( IniStr_isLeft( line, _T("ExceptFile") ) ) {
← ▼ ▲
ReplaceSymbolsClass
(src)
Set w_= AppKey.NewWritable( "." ).Enable()
Set rep = new ReplaceSymbolsClass
rep.Load "ReplaceSymbols.xml"
rep.ReplaceFiles
複数のファイルの中の複数の単語（文字列）を一度に置き換えます。
サンプル
参考
→ ReplaceSymbols コマンド
テスト
→ T_ReplaceSymbols フォルダー
ユーザーに確認を求めないときは、rep.IsSubmit = False してください。
← ▼ ▲
Load (ReplaceSymbolsClass)
Sub ReplaceSymbolsClass::Load( XML_Path as string, Config as ReplaceSymbolsLoadConfigClass )
を読み込みます。
【引数】
XML_Path
ReplaceSymbols の設定ファイルのパス
ReplaceSymbols の設定ファイル
[ 親: ReplaceSymbolsClass ]
Config
Empty または、設定
ReplaceSymbolsLoadConfigClass
Class ReplaceSymbolsLoadConfigClass
Public IsReverse '// as boolean
End Class
IsReverse = True なら、Replace タグの from と to を入れ替えて、置き換えます。
← ▼ ▲
ReplaceFiles (ReplaceSymbolsClass)
Sub ReplaceSymbolsClass::ReplaceFiles()
設定に従って、指定した複数のファイルの中の文字列の単語を置き換えます。
[ 親: ReplaceSymbolsClass ]
Load メソッド
設定するには、
を使います。
← ▼ ▲
ConvSymbol
cscript.exe ConvSymbol.vbs /in_type:CDefine /in:file.h /out_type:CLang /out:file.c
/strs_array_name:g_Symbols_strs /ids_array_name:g_Symbols_ids
シンボルを定義しているC言語の #define から、数値と文字列の配列のコードを生成します。
入力ファイル・サンプル：
#define Sym1 10
#define Sym2 11
出力ファイル・サンプル：
TCHAR* g_Symbols_strs[] = {
_T("Sym1"),
_T("Sym2"),
};
int g_Symbols_ids[] = {
10,
11,
};
StrT_convStrToId 関数(clib) を使うと、文字列から数値に変換することができます。
→ StrT_convStrToId
テスト
→ Test_ConvSymbol フォルダ
int id;
TCHAR str[256];
_tcscpy_s( str, _countof(str), _T("Sym1") );
id = StrT_convStrToId( str, g_Symbols_strs, g_Symbols_ids,
sizeof(g_Symbols_strs)/sizeof(*g_Symbols_strs), 0 );
参考
【引数】
in_type
in
CDefine 固定
C言語の #define が書かれたテキスト・ファイルのパス
out_type
CLang 固定
→ ConvSymbol フォルダ
out
数値と文字列の配列の C言語コードの出力先となるファイルのパス
strs_array_name
ids_array_name
文字列の配列の変数名
数値の配列の変数名
Sub ConvSymbol( InPath as string, OutPath as string, Opt as ConvSymbolOption )
Class ConvSymbolOption
Public InType
Public OutType
Public StrsFuncName
Public IDsFuncName
End Class
ConvSymbolOption クラス
ConvSymbolOption
内容は、上記引数と同じ
サンプル・スクリプト：
Set conv_option = new ConvSymbolOption
Set o = conv_option
o.InType = "CDefine"
o.OutType = "CLang"
o.StrsFuncName = "g_Symbols_strs"
o.IDsFuncName = "g_Symbols_ids"
ConvSymbol "file.h", "file.c", conv_option
サンプル
(src)
'//=== make g("OutTableH")
Dim rep, line
Set rep = StartReplace( g("OutTableC"), g("OutTableH"), True )
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " extern ""C"" {"
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
Do Until rep.r.AtEndOfStream
line = rep.r.ReadLine()
If InStr( line, "g_Symbols_strs" ) > 0 or InStr( line, "g_Symbols_ids" ) > 0 Then
rep.w.WriteLine "extern "+ Replace( line, " = {", ";" )
End If
Loop
rep.w.WriteLine ""
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " } // extern ""C"""
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
rep.w.WriteLine "// "+ g("OutTableH") +" was made by """+ WScript.ScriptName +""""
rep.Finish
C ファイルから、ヘッダファイルを作成するスクリプトは、下記のようになります。
← ▼ ▲
TortoiseMerge
テキストの差分を表示するプログラムです。 TortoiseSVN (SubVersion) に付属しています。
→ TortoiseMergeの使い方 - TortoiseSVN (Web)
参考
← ▼ ▲
Rekisa
→ FrozenLib (Web)
開発元
→ Rekisa - ベクターソフトニュース (Web)
関連
テキストの差分を表示するプログラムです。
推奨初期設定
[ 設定 | 比較フィルタ | タブと空白を削除 ] を選択してから、Rekisa を再起動します。
→ サクラエディタとの連携 (Web)
"$(PATH)" -Y=$(Y+1)
サクラエディタで開く(&S)
C:\Program Files\sakura\sakura.exe
[ 設定 | 外部ツール ]
フォルダを開く(&F)
explorer
/SELECT, "$(PATH)"
( -X=$(X+1) は使いにくい）
→ Rekisa - 窓の杜 (Web)
← ▼ ▲
ArgsLog
ArgsLog.exe に指定したパラメーターを、カレント・フォルダーの ArgsLog.txt ファイルに追記出力します。
テスト用です。
テスト プログラムが、テスト対象のプログラム（exe ファイル）を起動する代わりに ArgsLog.exe を起動
したり、テスト対象のプログラムに例えば /ArgsLog オプションを付けることで関数の内部から起動する
exe ファイルを ArgsLog.exe に切り替えたりすることがよくあります。 たとえば、テスト対象のプログラム
がテキスト エディターを起動する関数を呼び出したとき、その関数の中で ArgsLog.exe が起動され、
テキスト エディターが起動したものとしてテストを実施し、起動したコマンドラインについて ArgsLog.txt
ファイルをチェックします。
→ ArgsLog フォルダー
参考
→ ArrayFromCmdLine
関連
→ Diff ツールで開くファイルのパスをテストでチェックするとき
→ テキスト エディターで開くファイルのパスをテストでチェックするとき
→ ログ
← ▼ ▲
エディター等の設定変更 （vbslib 外部プログラム設定、setting フォルダー）
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
setting_default フォルダーや setting フォルダー
なお、設定は、
の PC_setting_default.vbs や
PC_setting_default.vbs
PC_setting.vbs に入っている下記の関数定義です。
vbslib Prompt.vbs
探し方を変更するときは、
の
Setting コマンド
で設定を変更してください。
vbslib が呼び出すユーザー設定関数
の中の .vbs ファイルに、ユーザーが定義する関数です。
setting フォルダー
Setting_getIncludePathes
インクルードする外部 .vbs ファイルのパスの配列を返す。
テキスト エディターのパスを返します。
テキスト比較（Diff）ツールのパスを返します。
PC_setting.vbs
vbs_inc_setting.vbs
Setting_openFolder 関数
フォルダーを開きます。
Setting_getDiffCmdLine 関数
Setting_getEditorCmdLine 関数
Setting_getAdminUserName 関数
管理者のユーザ名を返します。
Setting_onAfterInclude
すべてのモジュールをインクルードした後のコールバック。
Setting_getFolderDiffCmdLine 関数
フォルダー比較（Diff）ツールのパスを返します。
関連
→ ArgsLog
テスト用に、外部プログラムを起動したログを出力する
←
↓