「TrueとFalse を切り替える」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Sukemaru (トーク | 投稿記録)
Sukemaru (トーク | 投稿記録)
ソースコードを変更
8行目: 8行目:


ソースコード内に相互変換する単語を登録して使用します。
ソースコード内に相互変換する単語を登録して使用します。


* "True" ⇔ "False" や "Yes" ⇔ "No" の2つの単語の相互変換なら
* "True" ⇔ "False" や "Yes" ⇔ "No" の2つの単語の相互変換なら
  [ "True", "False" ],  
  [ "True", "False" ],  
  [ "Yes", "No" ],  
  [ "Yes", "No" ],  
* 大文字/小文字/頭文字だけ大文字 を別々に登録する必要があります
[ "ON", "OFF" ],
[ "on", "off" ],
[ "On", "Off" ],




25行目: 20行目:




* また、左 → 右 方向には変換しても 右 → 左(先頭)方向 に変換させたくない場合は、グループの最後に空要素 '''""''' を置きます
* 単語グループの登録は「頭文字が大文字」の
  [ "Notepad", "Mery", "" ],  
[ "Hoge", "Fuga", "Piyo" ],
  [ "Terapad", "Mery", "" ],  
[ "Hoge", "Fuga", "Piyo" ],
  [ "EmEditor", "Mery", "" ],  
だけであっても、「小文字」同士の hoge, fuga, piyo や hoge、fuga、 piyo、 「大文字」同士の HOGE, FUGA, PIYO や HOGE、 FUGA、 PIYO も変換できます。 <br>
[ "Alpha", "Bravo", "Charlie", "Delta", "Echo", "" ],
 
※「小文字」だけのグループを登録した場合は「大文字」差分の変換もでき、「大文字」だけのグループを登録した場合は「小文字」差分の変換もできますが、どちらも「頭文字が大文字」の差分の変換はできません。
 
 
* 小文字や大文字の差分では変換させたくないグループを登録する場合は、グループの先頭に '''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/24
// sumemaru 2018/11/20 - 2018/11/27
 
// ---------- ▼ 設定 ▼ ----------
// ---------- ▼ 設定 ▼ ----------


55行目: 64行目:
// グループを [ 角カッコ ] で囲い、うしろにもカンマ「 , 」を付けること。
// グループを [ 角カッコ ] で囲い、うしろにもカンマ「 , 」を付けること。
// ※マクロを実行してエラーになったときは、"ダブルクォート"/カンマ「 , 」/[ 角カッコ ] の過不足を確認。
// ※マクロを実行してエラーになったときは、"ダブルクォート"/カンマ「 , 」/[ 角カッコ ] の過不足を確認。
// 左→右 には変換しても 右→左(先頭) に変換させたくない場合は、グループの最後に空要素 "" を置く。
[ "Notepad", "Mery", "" ], [ "Terapad", "Mery", "" ], [ "EmEditor", "Mery", "" ],
[ "Alpha", "Bravo", "Charlie", "Delta", "Echo", ],




/* Positive or Negative */
/* Positive or Negative */
[ "True", "False" ], [ "true", "false" ], [ "TRUE", "FALSE" ],  
[ "True", "False" ],  
[ "Yes", "No" ], [ "yes", "no" ], [ "YES", "NO" ],  
[ "Yes", "No" ],  
[ "On", "Off" ], [ "on", "off" ], [ "ON", "OFF" ],  
[ "On", "Off" ],  
[ "Enable", "Disable" ], [ "enable", "disable" ], [ "ENABLE", "DISABLE" ],  
[ "Enable", "Disable" ],  
[ "Positive", "Negative" ], [ "positive", "negative" ], [ "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", "", "8", "9", "10" ],  
[ "0", "1", "2", "3", "4", "5", "6", "", "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, k; j < a[i].length; j ++ ) {
     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 ) {
           k = j + 1;
         if ( j < a[i].length - 1 )
           return a[i][k]; // ひとつ右の単語を返す
           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
           return a[i][0]; // いちばん左の単語を返す
         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;
         }
         }
        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時点における版

TrueFalse を切り替える

ダウンロード: ファイル:TrueとFalseを切り替える.zip(アイコン入り)


YESNO マクロ

選択範囲の文字列が "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
ソースコードを変更しました。
スポンサーリンク