「TrueとFalse を切り替える」の版間の差分
ナビゲーションに移動
検索に移動
細 →メモ |
ソースコードを変更 |
||
| 8行目: | 8行目: | ||
ソースコード内に相互変換する単語を登録して使用します。 | ソースコード内に相互変換する単語を登録して使用します。 | ||
* "True" ⇔ "False" や "Yes" ⇔ "No" の2つの単語の相互変換なら | * "True" ⇔ "False" や "Yes" ⇔ "No" の2つの単語の相互変換なら | ||
[ "True", "False" ], | [ "True", "False" ], | ||
[ "Yes", "No" ], | [ "Yes", "No" ], | ||
| 25行目: | 20行目: | ||
* | * 単語グループの登録は「頭文字が大文字」の | ||
[ " | [ "Hoge", "Fuga", "Piyo" ], | ||
[ " | [ "Hoge", "Fuga", "Piyo" ], | ||
[ " | だけであっても、「小文字」同士の hoge, fuga, piyo や hoge、fuga、 piyo、 「大文字」同士の HOGE, FUGA, PIYO や HOGE、 FUGA、 PIYO も変換できます。 <br> | ||
※「小文字」だけのグループを登録した場合は「大文字」差分の変換もでき、「大文字」だけのグループを登録した場合は「小文字」差分の変換もできますが、どちらも「頭文字が大文字」の差分の変換はできません。 | |||
* 小文字や大文字の差分では変換させたくないグループを登録する場合は、グループの先頭に '''0,''' を(引用符で囲わずに)置きます。 <br> 以下の例では mozilla や FIREFOX は変換されません。 | |||
[ '''0,''' "Mozilla", "Firefox" ], | |||
* 「大文字」だけを除外したい場合は、0, 付きの「頭文字」のグループと「小文字」のグループを登録します。 <br> 以下の例では ALPHA や BRAVO は変換されません。 | |||
[ '''0,''' "Alpha", "Bravo", "Charlie", "Delta", "Echo" ], | |||
[ '''0,''' "alpha", "bravo", "charlie", "delta", "echo" ], | |||
* 左→右 方向には変換しても 右→左(先頭)方向に変換させたくない場合は、グループの最後に空要素 '''""''' を置きます。 <br> 以下の例では Mery から Notepad や Terapad には変換されません。 | |||
[ 0, "Notepad", "Mery", '''""''' ], [ "Terapad", "EmEditor", "gPad", "秀丸", "Mery", '''""''' ], | |||
= ソースコード = | = ソースコード = | ||
| 37行目: | 47行目: | ||
#icon = "TF.ico" | #icon = "TF.ico" | ||
// 選択範囲の文字列が "True" なら "False" に、"False" なら "True" にする | // 選択範囲の文字列が "True" なら "False" に、"False" なら "True" にする | ||
// sumemaru 2018/11/20 - 2018/11/ | // sumemaru 2018/11/20 - 2018/11/27 | ||
// ---------- ▼ 設定 ▼ ---------- | // ---------- ▼ 設定 ▼ ---------- | ||
| 55行目: | 64行目: | ||
// グループを [ 角カッコ ] で囲い、うしろにもカンマ「 , 」を付けること。 | // グループを [ 角カッコ ] で囲い、うしろにもカンマ「 , 」を付けること。 | ||
// ※マクロを実行してエラーになったときは、"ダブルクォート"/カンマ「 , 」/[ 角カッコ ] の過不足を確認。 | // ※マクロを実行してエラーになったときは、"ダブルクォート"/カンマ「 , 」/[ 角カッコ ] の過不足を確認。 | ||
/* Positive or Negative */ | /* Positive or Negative */ | ||
[ "True", "False | [ "True", "False" ], | ||
[ "Yes", "No | [ "Yes", "No" ], | ||
[ "On", "Off | [ "On", "Off" ], | ||
[ "Enable", "Disable | [ "Enable", "Disable" ], | ||
[ "Positive", "Negative | [ "Positive", "Negative" ], | ||
| 75行目: | 80行目: | ||
[ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ], | [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ], | ||
[ "0", "1", "2", "3", "4", "5", "6", " | [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ], | ||
| 94行目: | 99行目: | ||
function ConvertYesNo( str ) { | function ConvertYesNo( str ) { | ||
Outer: | Outer: | ||
for ( var i = 0; i < a.length; i ++ ) { | for ( var i = 0, dist = str; i < a.length; i ++ ) { | ||
if ( ! a[i] ) | if ( ! a[i] ) // 空の要素はスキップ | ||
continue; | continue; | ||
Inner: | Inner: | ||
for ( var j = 0 | for ( var j = 0; j < a[i].length; j ++ ) { | ||
if ( ! a[i][j] ) | if ( ! a[i][j] ) // 空の要素はスキップ | ||
continue; | continue; | ||
if ( a[i][j] == str ) { | // ヒットしたら Hoge | ||
if ( j < a[i].length - 1 ) | if ( a[i][j] == str ) { | ||
if ( j < a[i].length - 1 ) | |||
dist = a[i][ j + 1 ]; | |||
else if ( a[i][0] && a[i][0] !== 0 ) | |||
dist = a[i][0]; | |||
else | |||
dist = a[i][1]; | |||
break Outer; | |||
} | |||
// 小文字にしてくらべてヒットしたら | |||
else if ( a[i][0] !== 0 && a[i][j].toLowerCase() == str.toLowerCase() ) { | |||
// もとの単語の各文字が小文字のみなら hoge | |||
if ( str == str.toLowerCase() ) { | |||
if ( j < a[i].length - 1 ) | |||
dist = a[i][ j + 1 ].toLowerCase(); | |||
else if ( a[i][0] ) | |||
dist = a[i][0].toLowerCase(); | |||
else | |||
dist = a[i][1].toLowerCase(); | |||
break Outer; | |||
} | } | ||
else { | // もとの単語の各文字が大文字のみなら HOGE | ||
else if ( str == str.toUpperCase() ) { | |||
if ( j < a[i].length - 1 ) | |||
dist = a[i][ j + 1 ].toUpperCase(); | |||
else if ( a[i][0] ) | |||
dist = a[i][0].toUpperCase(); | |||
else | |||
dist = a[i][1].toUpperCase(); | |||
break Outer; | |||
} | } | ||
} | |||
} | |||
} | } | ||
} | } | ||
return dist; | |||
} | } | ||
</source> | </source> | ||
| 121行目: | 150行目: | ||
--> | --> | ||
* 2018/11/25 sukemaru | * 2018/11/25 sukemaru | ||
: ソースコードを変更しました。 | |||
* 2018/11/27 sukemaru | |||
: ソースコードを変更しました。 | : ソースコードを変更しました。 | ||
2018年11月27日 (火) 00:56時点における版
True と False を切り替える
ダウンロード: ファイル:TrueとFalseを切り替える.zip(アイコン入り)
YES/NO マクロ
選択範囲の文字列が "True" なら "False" に、"False" なら "True" にします。
ソースコード内に相互変換する単語を登録して使用します。
- "True" ⇔ "False" や "Yes" ⇔ "No" の2つの単語の相互変換なら
[ "True", "False" ], [ "Yes", "No" ],
- "ほげ" → "ふが" → "ぴよ" → "ほげ" のような3つ以上の単語を順々に変換するなら
(前回のものよりも少しだけ登録しやすくしました。)
[ "ほげ", "ふが", "ぴよ" ], [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ],
- 単語グループの登録は「頭文字が大文字」の
[ "Hoge", "Fuga", "Piyo" ], [ "Hoge", "Fuga", "Piyo" ],
だけであっても、「小文字」同士の hoge, fuga, piyo や hoge、fuga、 piyo、 「大文字」同士の HOGE, FUGA, PIYO や HOGE、 FUGA、 PIYO も変換できます。
※「小文字」だけのグループを登録した場合は「大文字」差分の変換もでき、「大文字」だけのグループを登録した場合は「小文字」差分の変換もできますが、どちらも「頭文字が大文字」の差分の変換はできません。
- 小文字や大文字の差分では変換させたくないグループを登録する場合は、グループの先頭に 0, を(引用符で囲わずに)置きます。
以下の例では mozilla や FIREFOX は変換されません。
[ 0, "Mozilla", "Firefox" ],
- 「大文字」だけを除外したい場合は、0, 付きの「頭文字」のグループと「小文字」のグループを登録します。
以下の例では ALPHA や BRAVO は変換されません。
[ 0, "Alpha", "Bravo", "Charlie", "Delta", "Echo" ], [ 0, "alpha", "bravo", "charlie", "delta", "echo" ],
- 左→右 方向には変換しても 右→左(先頭)方向に変換させたくない場合は、グループの最後に空要素 "" を置きます。
以下の例では Mery から Notepad や Terapad には変換されません。
[ 0, "Notepad", "Mery", "" ], [ "Terapad", "EmEditor", "gPad", "秀丸", "Mery", "" ],
ソースコード
#title = "True or False"
#tooltip = "True と False を切り替える"
#icon = "TF.ico"
// 選択範囲の文字列が "True" なら "False" に、"False" なら "True" にする
// sumemaru 2018/11/20 - 2018/11/27
// ---------- ▼ 設定 ▼ ----------
// ■選択範囲がないときにキャレット位置の単語を自動選択するか?(不要なら false;)
var wordSelectionEnable = true;
// ■変換後に選択範囲を残すか?(不要なら false;)
var leftSelectionEnable = true;
// ---------- ▲ 設定 ▲ ----------
var a = new Array( // ←消しちゃダメ
// ---------- ▼ 単語グループを登録 ▼ ----------
// 単語を "ダブルクォート" か 'シングルクォート' で囲い、カンマ「 , 」で区切って並べる。
// グループを [ 角カッコ ] で囲い、うしろにもカンマ「 , 」を付けること。
// ※マクロを実行してエラーになったときは、"ダブルクォート"/カンマ「 , 」/[ 角カッコ ] の過不足を確認。
/* Positive or Negative */
[ "True", "False" ],
[ "Yes", "No" ],
[ "On", "Off" ],
[ "Enable", "Disable" ],
[ "Positive", "Negative" ],
/* (中略) */
[ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ],
[ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ],
// ---------- ▲ 単語グループを登録 ▲ ----------
[ "" , "" ] ); // ← 消しちゃダメ
var s = document.selection;
if ( s.IsEmpty && wordSelectionEnable )
s.SelectWord();
var st = ConvertYesNo( s.Text );
if ( st && s.Text && st != s.Text ) {
s.Text = st;
if ( leftSelectionEnable )
s.SetAnchorPos( s.GetActivePos() - st.length );
}
function ConvertYesNo( str ) {
Outer:
for ( var i = 0, dist = str; i < a.length; i ++ ) {
if ( ! a[i] ) // 空の要素はスキップ
continue;
Inner:
for ( var j = 0; j < a[i].length; j ++ ) {
if ( ! a[i][j] ) // 空の要素はスキップ
continue;
// ヒットしたら Hoge
if ( a[i][j] == str ) {
if ( j < a[i].length - 1 )
dist = a[i][ j + 1 ];
else if ( a[i][0] && a[i][0] !== 0 )
dist = a[i][0];
else
dist = a[i][1];
break Outer;
}
// 小文字にしてくらべてヒットしたら
else if ( a[i][0] !== 0 && a[i][j].toLowerCase() == str.toLowerCase() ) {
// もとの単語の各文字が小文字のみなら hoge
if ( str == str.toLowerCase() ) {
if ( j < a[i].length - 1 )
dist = a[i][ j + 1 ].toLowerCase();
else if ( a[i][0] )
dist = a[i][0].toLowerCase();
else
dist = a[i][1].toLowerCase();
break Outer;
}
// もとの単語の各文字が大文字のみなら HOGE
else if ( str == str.toUpperCase() ) {
if ( j < a[i].length - 1 )
dist = a[i][ j + 1 ].toUpperCase();
else if ( a[i][0] )
dist = a[i][0].toUpperCase();
else
dist = a[i][1].toUpperCase();
break Outer;
}
}
}
}
return dist;
}
メモ
- 2018/11/25 sukemaru
- ソースコードを変更しました。
- 2018/11/27 sukemaru
- ソースコードを変更しました。
スポンサーリンク