「
行並べ替え
」を編集中
2014年7月27日 (日) 13:35時点における
Masme
(
トーク
|
投稿記録
)
による版
(行並べ替え(rev.5)公開)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
<div style="float:right">__TOC__</div> 選択範囲(矩形可)の文字列を比較し、行の並べ替えを行うマクロです。 * Unicode順 または Shift_JIS風の並べ替えが行えます。 * 半角/全角、大文字/小文字、ひらがな/カタカナを区別するかを選択できます。 【注意点】 * 数値順・自然順での並べ替えには対応していません(数字は辞書順で並べ替えます)。 * 処理速度が遅い上、処理中はCPUをフルに使用します(作者の環境では、1万行の処理に約1~2秒かかりました)。<br>ステータスバーに処理に要した時間が表示されますので参考にしてください。 [[ファイル:SortLineBySelection.png]] {| class="wikitable" !並べ替え(Unicode) |Unicode順での並べ替えを実行します。 |- !並べ替え(Shift_JIS風) |Shift_JIS風での並べ替えを実行します。<br>※Shift_JIS とは一部の並び順が異なるため「風」と付いています。<br>※Shift_JIS にない文字は、最後尾に並びます(昇順時)。 |- !昇順 or 降順 で並べる |昇順 (A→Z) で並べるか降順 (Z→A) で並べるかを切り替えます。 |- !半角/全角を区別 |半角文字と全角文字を区別するかしないかを切り替えます。<br>区別しない場合、全角英数記号は半角、半角カナは全角とみなします。 |- !大文字/小文字を区別 |大文字と小文字を区別するかしないかを切り替えます。<br>区別しない場合、大文字は小文字とみなします。 |- !ひらがな/カタカナを区別 |ひらがなとカタカナを区別するかしないかを切り替えます。<br>区別しない場合、ひらがなはカタカナとみなします。 |} ==ソースコード== ダウンロード→ [[メディア:行並べ替え.zip|行並べ替え.zip]] (rev.5) * 拙作ですがアイコンファイルを同梱してあります。<br>Mery の My Macros フォルダにアイコンファイル (行並べ替え.ico) を配置すれば、ツールバーにアイコンが読み込まれます。 ==更新履歴== [[ファイル:行並べ替え.zip]] * <b>2014/07/27 (rev.5)</b> ** アイコンファイルを同梱し、読み込むようにした。 ** 並べ替え実行後、行全体を範囲選択するようにした。 ** 矩形選択で折り返し行を含む場合の不具合を修正。 *** 折り返し行を探査するため、通常より処理時間が伸びます(1万表示行で約4秒増加)。 ** rev.4 の処理高速化手法の一部(コード変換)を取り下げ。 *** マクロの処理速度では大量処理にも限界があるので、可読性を優先しておくことに。 ** 半角/全角変換表の仕様を ["正規表現","文字"] → [/正規表現/,"文字"] に変更。 ** 半角/全角区別の対象に " ' \ の3字を追加。 ** 大/小文字区別の処理を toLowerCase() → toLocaleLowerCase() に変更。 *** Mery の大文字/小文字変換と同様、OS の言語設定を考慮するようにした。 ** かな/カナ区別の処理を半角/全角区別と同じ仕様に変更(ひらがなが多い場合に高速化)。 ** かな/カナ区別の対象に ゝ ゞ の2字を追加。 * <b>2013/09/19 (rev.4)</b> [[ファイル:行並べ替え_r4.zip]] ** ks 氏の改善策を参考に、処理を高速化(作者の環境で1万行に2秒→1秒に短縮)。 ** <span style="color:#c00;">並べ替え(Shift_JIS風) 時、Shift_JIS にない文字の扱いが変わりました。<br>rev.3 までは、昇順/降順を問わず最後尾に並ぶようになっていましたが、<br>rev.4 からは、昇順/降順の設定に従うようになっています。</span> * <b>2013/09/19 (rev.3)</b> [[ファイル:行並べ替え_r3.zip]] ** 「半角/全角を区別」設定を追加。 ** 選択範囲がない場合にエラーが出る不具合を修正。<br>ポップアップメニューで「並べ替えが行えない」ことを注意するようにした。 ** 並べ替え(Unicode) 時にも Shift_JIS 用のデータを処理していたムダを解消し、高速化。 * <b>2013/08/29 (rev.2)</b> [[ファイル:行並べ替え_r2.zip]] ** ks 氏の改善策を参考に、処理を高速化(作者の環境で1万行に30秒→2秒に短縮)。 ** <span style="color:#c00;">並べ替え(Unicode) 時に、水平タブが空行より前に並ぶバグがあります</span>(rev.3 で修正)。 * <b>2013/08/25 (rev.1)</b> ** 初版公開。 ==不具合(解決)== ===矩形選択で折り返し行を含む場合=== <span style="color:#c00;">※rev.5 で解決</span><br> 折り返された行を矩形選択していると、正しく並べ替えられません(画像参照)。 [[ファイル:SortLineBySelection_PosView.png]] ==仕様== ===Shift_JIS風の並び順=== ※Shift_JIS風の並び順は、ソースコードの「Shift_JIS(CP932)索引」で定義されています。<br> Microsoft コードページ932 (参考: [http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932 Wikipedia]) の定義を基本に、以下の変更を加えてあります。 * NEC特殊/IBM拡張記号類 ①~" は、全角記号の次。㍻は㍼の次に並ぶ。 * ローマ数字の小文字形 ⅰ~ⅹ は、大文字形 Ⅰ~Ⅹ の次に並ぶ。 ===半角/全角を区別しない並び順=== ※区別の対象となる文字は、ソースコードの「半角/全角変換表」で定義されています。 * 全角英数は半角、半角カナは全角とみなして並べ替えます。 * 全角記号は、全角ASCII文字の範囲に“ ”‘ ’¥ の5字を追加してあります。 ===大文字/小文字を区別しない並び順=== * 大文字は小文字とみなして並べ替えます。このため、<b>[ ] \ ^ _</b> は <b>A</b> より前に並ぶようになります。 * ギリシャ文字やローマ数字など、大小の区別が存在する文字も区別しなくなります。 * 小さい <b>っ ぁ ゃ</b> などは「捨て仮名」「小書き文字」と呼び、小文字とは異なる概念の文字なので対象外です。 ==開発者メモ== ;「数値順・自然順での並べ替え」対応 ⇒予定なし :数値の判定が面倒くさいため対応予定は現状ありません。<br>空白文字・通貨記号・3桁区切りの考慮、負数・小数・指数・計算精度の問題など、課題がいろいろあって力尽きました。 ;プラグイン化 :インタプリタなマクロより、コンパイルしたプラグインの方が高速だと思います。<br>しかしながら、自分は JavaScript くらいしか組めないので実現予定はありません。 ==コメント== * [http://merysmacro.seesaa.net/?1377428899 処理速度の改善を図ってみました]ので,ご参考まで (ks) ** ありがとうございます。おかげさまで処理速度を大幅に改善することができました。 (masme)
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク