作者jjt (jet)
看板perl
标题Re: [问题] 关於上下左右转换的问题
时间Mon Oct 15 20:46:52 2007
※ 引述《handsomegirl (薰)》之铭言:
: #########################################
: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
: 10 E E F F E .
: 11 8 F 2 2 2 2 2 2 2 E 2 F 2 2 2 E E E E
: 12 9 9 2 2 2 2 2 2 2 2 2 E E 2 2 E 2 2 E E
: 13 F 2 F 2 F F 2 2 2 2 2 E 2 F 2 2 2 2 E 2 E E
: 14 8 2 2 2 2 2 2 2 2 2 2 2 2 2 F E 2 E E E E E
: 15 2 2 2 2 2 2 2 2 2 2 2 2 2 E 2 E E E E E E E
: 16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
: 17 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 F 2
: 现在我有这样一个图
: 然後黄色的数字因为代表行列所以不希望改变
: 其他的部份除了上下颠倒之外,我还希望左右相反
: 等於把整个图做180度的旋转
: 我目前的想法是先办认前面的行列,把它视为INDEX
: 再把後面的做REVERSE
: 只是再来就遇到一些瓶颈
: 不晓得有没有什麽好方法~
: 恳请高手来解答,谢谢~
1.先读取前三行
然後读取剩下的
open FP,"test.txt" or die $!;
$row=<FP>.<FP>.<FP>;
@text=<FP>;
close FP;
2.把 行首跟内文分开
foreach(@text)
{
push @column,substr $_, 0, 3;
push @content,substr $_, 3,-1;
}
3.印出来
print "$row";
foreach(0...$#content)
{
print $column[$_], reverse_x($content[
$#content-$_]), "\n";
}
sub reverse_x
{
my $i = shift;
join '', reverse unpack 'a ' x length $i,$i;
}
黄字部份 $
#content-$_ 表示反转 , 改成 $_ 就是不转啦
reverse_x 最後那个join '', 把array连起来 然後再印出来那边
其实不用join结果也一样 端看你後来要怎麽处理或是显示
--
我刚刚才去看unpack怎麽用XD 不是高手:p
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.197.133