[ 新規に投稿する ]

ファイル名やパスの文字数が分かるようにして欲しいNo.06745
hawk-eye さん 17/09/15 13:27 [ コメントを投稿する ]
  Windows 10 Pro (64ビット版)
秀丸ファイラーClassic Version 1.28 Beta 3 (64ビット版) 使用

以下の文字数が簡単に分かるようにして欲しいです。

・ファイル名を含んだパスの文字数
・ファイル名を含まないパスの文字数
・ファイル名の文字数

なお、現在は、ファイル名やパスをコピーして
秀丸エディタに貼り付けて文字数を数えています。

よろしくお願い致します。

以上
[ ]
RE:06745 ファイル名やパスの文字数が分かるようにして欲しいNo.06746
hawk-eye さん 17/09/15 13:33 [ コメントを投稿する ]
  書き忘れましたが、文字数というのは、半角で数えた場合の文字数です。
[ ]
RE:06746 ファイル名やパスの文字数が分かるようにして欲しいNo.06747
秀丸担当 さん 17/09/15 15:14 [ コメントを投稿する ]
 
文字数がUnicodeの文字数であれば、スクリプトでGetItemPath(n).lengthを表示
させるなどで比較的簡単にできると思います。
文字数が半角1文字で全角2文字という計算にするとしたら、少々面倒だと思いま
す。
「javascript 全角文字数」で検索してみたところ、以下のページのようなサン
プルがありました。
http://kihon-no-ki.com/javascript-count-multi-byte-characters-as-two-single-byte-one
これを参考にさせていただいて、以下のようなスクリプトでできました。
最初の選択の文字数を半角で計算して表示しています。
スクリプトは、例えばc:\folder\test.jsとして保存した場合、ブックマークの
「パス」の部分に「js:c:\folder\test.js」と書くとスクリプトとして実行でき
ます。

function charcount (str) {
  var len = 0;
  str = escape(str);
  for (var i=0;i<str.length;i++,len++) {
    if (str.charAt(i) == "%") {
      if (str.charAt(++i) == "u") {
        i += 3;
        len++;
      }
      i++;
    }
  }
  return len;
}

s=GetDirectory()+"\n"+charcount(GetDirectory())+"文字\n\n";
iItem=GetNextItem(-1,2);
if(iItem>= 0){
  s+=GetItemPath(iItem)+"\n"+charcount(GetItemPath(iItem))+"文字\n\n";
  s+=GetItemText(iItem)+"\n"+charcount(GetItemText(iItem))+"文字\n\n";
}
Message(s);
[ ]
RE:06747 ファイル名やパスの文字数が分かるようにして欲しいNo.06748
hawk-eye さん 17/09/15 17:35 [ コメントを投稿する ]
  大変ありがとうございました。
上手くいきました。
[ ]

[ 新規に投稿する ]