作者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
1F:推 ForeverT:感谢 原来可以这样 但是如果我字串长短差距很大的话 03/30 15:20
2F:→ ForeverT:且是未知的字数 这样<<<<<<或 >>>>>> 如果不够多 03/30 15:21
3F:→ ForeverT:就会把我字数消掉 03/30 15:21
4F:→ ForeverT:如果打多一点>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 03/30 15:21
5F:→ ForeverT:又有可能我这个档案的字串篇短 而留太多空格 03/30 15:21
6F:→ ForeverT:也就是说 我字串数字未知 又该如何写呢 03/30 15:23
7F:→ ForeverT:太多了 重新发文 03/30 15:23
8F:→ CindyLinz:较复杂的变化, 那还是用 length() 回圈去计算比较方便喽 03/30 15:56
※ 编辑: CindyLinz 来自: 210.242.246.249 (09/10 13:13)