Re: [問題] 關於上下左右轉換的問題

看板Perl作者 (jet)時間17年前 (2007/10/16 11:43), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《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
文章代碼(AID): #1753DJDw (Perl)
文章代碼(AID): #1753DJDw (Perl)