PerlScript へのパディング処理を行うマクロを PerlScript で作ってみました。
=head1 NAME
PadPerlScript.pls - PerlScirpt へのパディング処理
=head1 DESCRIPTION
PerlScript(.pls)ファイルにパディングを行い、日本語の使用を可能にします。
=cut
use strict;
use warnings;
use encoding 'cp932';
binmode(STDERR, ':raw :encoding(cp932)');
use Encode;
# パディングの設定
my $pad_char = "."; # 2 文字目以降の文字
my $pad_columns = 80; # 一行毎の文字数
# 改行コードの判別
my @retcodes = ("\r\n", "\r", "\n");
my $retcode = $retcodes[GetLineCode()];
# テキスト全体を取得
SelectAll();
my $seltext = GetSelectedString(0);
# バイト数取得
use bytes;
my $bytecount = length($seltext);
no bytes;
# 文字数の取得
my $seltext = decode('cp932', $seltext);
my $wordcount = length($seltext);
# 選択解除&ドキュメント末尾に移動
Right();
# 必要ぶん、適当な文字を挿入
my $count = $bytecount - $wordcount; # 挿入が必要な文字数
my $instext = $retcode; # 挿入に使用するバッファ。とりあえず改行文字。
while ($count > 0) {
$instext .= '#' . $pad_char x ($pad_columns - 1) . $retcode;
$count -= $pad_columns;
}
$instext = encode('cp932', $instext); # 挿入前に CP932 にエンコード
InsText($instext);
#...............................................................................
#...............................................................................