作者CindyLinz (Cindy Wang)
看板Perl
標題Re: [問題] 關於長字串文字排版
時間Tue Mar 30 14:17:03 2010
你試試看這段程式, 是不是符合你想要的功能?
@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
推 ForeverT:感謝 原來可以這樣 但是如果我字串長短差距很大的話 03/30 15:20
→ ForeverT:且是未知的字數 這樣<<<<<<或 >>>>>> 如果不夠多 03/30 15:21
→ ForeverT:就會把我字數消掉 03/30 15:21
→ ForeverT:如果打多一點>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 03/30 15:21
→ ForeverT:又有可能我這個檔案的字串篇短 而留太多空格 03/30 15:21
→ ForeverT:也就是說 我字串數字未知 又該如何寫呢 03/30 15:23
→ ForeverT:太多了 重新發文 03/30 15:23
→ CindyLinz:較複雜的變化, 那還是用 length() 迴圈去計算比較方便嘍 03/30 15:56
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:13)