◀マクロトップへ
  • 293 非7bit-ASCII文字置換 PerlScript
  • [293] 非7bit-ASCII文字置換 PerlScript miau 2006年07月20日 09:24

    選択文字列中で 7-bit ASCII 以外の部分を \x80 に置換するマクロです。
    その文字列が「バイト単位の parse しかしてくれないプログラムからどう見えるか」を調べるのに便利かもしれません。

    (例)
    C:\某プロジェクト\システム構成
    ↓
    C:\・^・v・・・W・F・N・g\・V・X・e・・・\・・
    (※実際は \x80 に置き換えるんですが、IE だと € とか表示されて見にくいのでここでは中点にしています。)

    use strict;
    use warnings;
    use Win32::Clipboard;

    # 選択状態を取得
    my $is_text_selected = IsTextSelected();
    exit 0 unless $is_text_selected; # 未選択時は終了

    # 選択文字列の取得
    my $seltext = GetSelectedString();

    # 7-bit ASCII 以外の文字を \x80 に置換
    $seltext =~ tr/\x81-\xff/\x80/;

    # 置換後文字列の出力
    if ($is_text_selected == 2) {
    # 矩形選択時→矩形貼り付け
    Win32::Clipboard::Set($seltext);
    PasteBox();
    }
    else {
    # 通常選択時→挿入
    InsText($seltext);
    }

    #...............................................................................