Re: [問題] 關於上下左右轉換的問題
※ 引述《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
推
10/16 17:09, , 1F
10/16 17:09, 1F
推
10/16 17:17, , 2F
10/16 17:17, 2F
推
10/16 17:21, , 3F
10/16 17:21, 3F
→
10/16 17:21, , 4F
10/16 17:21, 4F
→
10/16 17:22, , 5F
10/16 17:22, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章