返回列表 发帖

[原创代码] [Perl]对剪切板字符串等宽截取

本帖最后由 523066680 于 2014-8-15 11:58 编辑

使用环境,WINDOWS,复制文本的时候确保输入法是在中文(CH)
的状态下,否则可能乱码。原因参考Perl脚本实现文本加框
use Encode;
use Win32::Clipboard;
use IO::Handle;
STDOUT->autoflush(1);
my $clip = Win32::Clipboard();
my $limit = 60;
my $str;
$str = $clip->GetText();
my ($a, $b);
my @arr;
foreach $b (split(/\r?\n/, $str)) {
    while (length($b) > $limit) {
        ($a, $b) = &cut_gbk($limit, $b);
        push (@arr, $a);
    }
    #最后部分
    push (@arr, $b);
}
$clip->Set( join("\r\n", @arr) );
print join("\n", @arr);
<STDIN>;
sub cut_gbk {
    my ($limit, $gstr) = @_;
    my $i;
    my $cut = 0;
    my $gstr_a;
    my $gstr_b;
    foreach $i (
        split("", decode('gbk', $gstr))
    ) {
        $cut++;
        $cut++ if (ord($i) >= 128);
        if ($cut >= $limit) {
            $gstr_a = substr($gstr, 0, $cut);
            $gstr_b = substr($gstr, $cut);
            last;
        }
    }
    return ($gstr_a, $gstr_b);
}COPY
示例文本:
刚刚有个傻冒告诉我鲁迅姓周,真逗啊!周迅是个演员好吗?笑死我了!真想一板砖呼死他!我记得鲁迅原名李大钊,浙江周树人,是著名的反法西斯音乐家,一生有2000多项发明,被称为太空步的创始人。他拥有一个好嗓子,小学时就凭借着90分钟跑100米的优异成绩考上了新东方烹饪学校!毕业后成功进入富士康苦心练习勃鸡, 他擅长110米栏,左手反打技术高超,拿手全垒打,大灌篮,“后空翻180度右旋体360度后蹬地翻转720度”是他的经典动作,更难得可贵的是他落地没有水花。他还是恶魔果实能力者,传说中的三忍之一,曾大闹天宫,后改邪归正,统一三国,传说他有107个弟兄,个个铜头铁臂,面目狰狞,这便是羊村的起源,她生平淡泊名利,后遇到高人阿凡达的指点,打死了白雪公主,与七个小矮人快乐的生活在一起。!并写了名侦探柯南的故事。名侦探柯南讲述的是要成为海贼王的八神太一收服了皮卡丘并登上创界山启动光能使者打败了鲨鱼辣椒,然后跟多啦A梦一起通过黄金十二宫收集七个葫芦娃召唤神龙复活二代火影,但最终为了保卫M78星云而成为了羊村村长,同蓝精灵们一起抵抗光头强的入侵的故事 。

CONTROL+C ,执行脚本后重写剪切板,得到:

刚刚有个傻冒告诉我鲁迅姓周,真逗啊!周迅是个演员好吗?笑死我
了!真想一板砖呼死他!我记得鲁迅原名李大钊,浙江周树人,是著
名的反法西斯音乐家,一生有2000多项发明,被称为太空步的创始人
。他拥有一个好嗓子,小学时就凭借着90分钟跑100米的优异成绩考上
了新东方烹饪学校!毕业后成功进入富士康苦心练习勃鸡, 他擅长1
10米栏,左手反打技术高超,拿手全垒打,大灌篮,“后空翻180度右
旋体360度后蹬地翻转720度”是他的经典动作,更难得可贵的是他落
地没有水花。他还是恶魔果实能力者,传说中的三忍之一,曾大闹天
宫,后改邪归正,统一三国,传说他有107个弟兄,个个铜头铁臂,面
目狰狞,这便是羊村的起源,她生平淡泊名利,后遇到高人阿凡达的
指点,打死了白雪公主,与七个小矮人快乐的生活在一起。!并写了
名侦探柯南的故事。名侦探柯南讲述的是要成为海贼王的八神太一收
服了皮卡丘并登上创界山启动光能使者打败了鲨鱼辣椒,然后跟多啦
A梦一起通过黄金十二宫收集七个葫芦娃召唤神龙复活二代火影,但最
终为了保卫M78星云而成为了羊村村长,同蓝精灵们一起抵抗光头强的
入侵的故事 。
[url=][/url]

返回列表