Re: [問題] 關於長字串文字排版

看板Perl作者 (Cindy Wang)時間15年前 (2010/03/30 14:17), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串2/5 (看更多)
你試試看這段程式, 是不是符合你想要的功能? @a = (1,2,345); @b = (12,34,5678); @c = (123,45,6); format A = @<<<<<< @|||||| @>>>>>> $a $b $c . $~ = 'A'; for(0..3) { ($a, $b, $c) = ($a[$_], $b[$_], $c[$_]); write; } 輸出: 1 12 123 2 34 45 345 5678 6 ※ 引述《ForeverT (全家好神)》之銘言: : 這問題的很簡單 也很簡短 但為了詳細敘述所以寫比較長 : 希望各位高手不要看到一大篇就左轉 謝謝各位高手 : 我有個文字檔 經過perl擷取部分資料 寫進陣列之後 : 用迴圈重新print陣列中資料 : 但文字部分 有長有短且差異很大 希望print之後很整齊 : 例如 : for($ = 0; $i <= 100; $i++) { : print OUT "@array1[$i]\t"; : print OUT "@array2[$i]\n"; : } : 結果可能會成這樣 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 因此我再改成 : for($ = 0; $i <= 100; $i++) { : printf OUT "%15s" , "@array1[$i]\t"; : printf OUT "%15s" , "@array2[$i]\n"; : } : 結果可能會成這樣 類似靠右對其 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 但我希望是靠左對其 如下 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 請問各位高手 該如何寫呢? : 再請問如果要 置中對齊又該如何寫呢? : 感謝 再感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.192.252

03/30 15:20, , 1F
感謝 原來可以這樣 但是如果我字串長短差距很大的話
03/30 15:20, 1F

03/30 15:21, , 2F
且是未知的字數 這樣<<<<<<或 >>>>>> 如果不夠多
03/30 15:21, 2F

03/30 15:21, , 3F
就會把我字數消掉
03/30 15:21, 3F

03/30 15:21, , 4F
如果打多一點>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
03/30 15:21, 4F

03/30 15:21, , 5F
又有可能我這個檔案的字串篇短 而留太多空格
03/30 15:21, 5F

03/30 15:23, , 6F
也就是說 我字串數字未知 又該如何寫呢
03/30 15:23, 6F

03/30 15:23, , 7F
太多了 重新發文
03/30 15:23, 7F

03/30 15:56, , 8F
較複雜的變化, 那還是用 length() 迴圈去計算比較方便嘍
03/30 15:56, 8F
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:13)
文章代碼(AID): #1BiPTYB1 (Perl)
文章代碼(AID): #1BiPTYB1 (Perl)