作者handsomegirl (薰)
看板perl
标题Re: [问题] 关於排序
时间Fri Jul 20 11:21:24 2007
※ 引述《LiloHuang (四年前两年後)》之铭言:
: 我讲重点就好
: @data = map { substr $_ ,3 }
: sort
: map { [split " "]->[1].$_ } @data;
: 其实写法等同於
: @data = map { [split " "]->[1].$_ } @data;
: @data = sort @data;
: @data = map { substr $_ , 3 } @data;
: 当执行第一列程式码时 我故意把NO* 这个栏位摆到前面来
: split " " 是切割原本每一个列的字串 ( Row跟Column常常会被误用 )
: "A NO1 2006/10/10 18:36" 变成一个匿名阵列
: ["A","NO1","2006/10/10 18:36"] 然後取出阵列1的资料NO*
: 尾巴还得加上原始的资料,其实有其他作法,例如加上原始的阵列位置
: 不摆原始资料,我说过,写法可以有很多种^^ 这边我只举这个范例
: 其目的是在於经过排序过程,原始资料会跟着一起动,不管是GRT或者
: Schwartzian转换的精神是在於这边(Schwartzian转换通常以匿名阵列加在前面)
: 经过map资料会变成
: NO1A NO1 2006/10/10 18:36
: NO2B NO2 2007/12/12 16:37
: NO3C NO3 2007/12/13 17:40
: NO1D NO1 2005/01/01 00:01
: NO2G NO2 2007/12/13 17:20
: 特别注意一点,这边的NO*栏位长度都是固定的,如果不固定要自己padding
: 例如使用pack来padding
: 当执行第二列程式码时,资料会进行排序
: NO1A NO1 2006/10/10 18:36
: NO1D NO1 2005/01/01 00:01
: NO2B NO2 2007/12/12 16:37
: NO2G NO2 2007/12/13 17:20
: NO3C NO3 2007/12/13 17:40
: 当执行第三列程式码时,目的就是把前面的NO*给删除,因此使用substr
: A NO1 2006/10/10 18:36
: D NO1 2005/01/01 00:01
: B NO2 2007/12/12 16:37
: G NO2 2007/12/13 17:20
: C NO3 2007/12/13 17:40
应L大要求~我把一部份范例贴上
WIP0509.csv C2 Depo. P63122800A 2006/11/9 18:32:19
WIP0509.csv C2 Depo. E62625700A 2007/1/11 10:38:59
WIP0509.csv Spacer SiN CVD E6071151PA 2006/7/9 04:31:31
WIP0509.csv Spacer SiN CVD E60711533A 2006/7/9 04:31:31
WIP0509.csv IN-Gate-Stack-Depo E7061360CA 2007/3/10 13:59:17
WIP0509.csv IN-Gate-Stack-Depo E7061370MA 2007/3/13 04:10:24
WIP0510.csv WAT E70221826A 2007/4/27 22:13:11
WIP0511.csv DT Photo E70222107A 2007/3/6 21:04:42
WIP0511.csv DT Photo E70222100A 2007/3/6 21:04:42
WIP0511.csv
WIP0511.csv BS Poly CVD E6101390PA 2006/5/25 18:49:25
WIP0511.csv BS Poly CVD E6190810DA 2006/9/25 03:31:02
WIP0511.csv BS Poly CVD E63428406A 2006/9/25 12:10:04
WIP0511.csv
最前面的是档名,再来是name,然後是我想排序的NO
这是我已经从约30个档案整理出来的东西
因为name的格式大多不固定,空格都不固定
所以想要从试着後面切回来
我有用L大的程式测试过,发现他也会把name一起作排列
有相同NO部分还是会被拆开这样
中间有档名後面没接东西的
输出就会把档名都跑在前面@@
有试过在一开始要把空格chop掉
但都没成功
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.65.55.161
※ 编辑: handsomegirl 来自: 61.65.55.161 (07/20 11:26)