作者jjt (jet)
看板perl
标题Re: [问题] 关於上下左右转换的问题
时间Tue Oct 16 11:43:14 2007
※ 引述《handsomegirl (薰)》之铭言:
: ※ 引述《jjt (jet)》之铭言:
: : 1.先读取前三行
: : 然後读取剩下的
: : open FP,"test.txt" or die $!;
: : $row=<FP>.<FP>.<FP>;
: 假设前面有几行不一定的话,或是有很多行的话,还可以这样写吗?
: 或是有别的办法?用for可以吗?
看你有几行就用几次.<FP>
如果是不固定的话 那.. 就一行慢慢扫 扫到你满意为止
while(<FP>)
{
last if($_=~/停止条件/);
$row.=$_:
}
: : @text=<FP>;
: : close FP;
: : 2.把 行首跟内文分开
: : foreach(@text)
: : {
: : push @column,substr $_, 0, 3;
: : push @content,substr $_, 3,-1;
: 假设前後的行数都不一定,是否要设变数?或是有比较好的想法?
: 例如以前面的行列数当作INDEX?
你应该是想问 一个row里面的元素数量不固定 该怎麽解决
因为我那段程式的话 每列的长度要一样 行数是无限制
解决方法
1.在处理的时候 补上空白
或是
2.用上面一篇另一个版友使用的方法
先把最大column找出来
在第三点印出来那边改一下就好
改成
print $column[$_],$offset_space,reverse_x($content[$
#content-$_]), "\n";
可以参考上一个版友提供的程式 就知道我想说什麽
: : }
: : 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结果也一样 端看你後来要怎麽处理或是显示
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.197.133
1F:推 handsomegirl:假设我程式後面还有注解,我怎麽设终止条件? 10/16 17:09
2F:推 jjt:终止条件跟程式码里面注解无关吧 不知道你想问啥@@ 10/16 17:17
3F:推 handsomegirl:我不是说程式注解,抱歉我的表达能力不好 10/16 17:21
4F:→ handsomegirl:应该说要旋转的文件下面还有文字的话,就不是直接做到 10/16 17:21
5F:→ handsomegirl:最後一行 10/16 17:22