作者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
推 handsomegirl:假設我程式後面還有註解,我怎麼設終止條件? 10/16 17:09
推 jjt:終止條件跟程式碼裡面註解無關吧 不知道你想問啥@@ 10/16 17:17
推 handsomegirl:我不是說程式註解,抱歉我的表達能力不好 10/16 17:21
→ handsomegirl:應該說要旋轉的文件下面還有文字的話,就不是直接做到 10/16 17:21
→ handsomegirl:最後一行 10/16 17:22