免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: jenny815
打印 上一主题 下一主题

抽出数组中不连续的值 [复制链接]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
11 [报告]
发表于 2012-07-13 11:35 |只看该作者
拿出解决方法啊,这种精神不行啊

论坛徽章:
0
12 [报告]
发表于 2012-07-13 11:57 |只看该作者
回复 11# MYSQLER


    写了一大串呢。。我贴出来吧。。。
   
   
        
        # 出现了(new_tkgid != old_tkgid) ||(old_PCEID != new_PCEID)的情况,表示一条记录产生
        if((new_tkgid != old_tkgid) ||(old_PCEID != new_PCEID))
        {   
            TN_POS = STN "-" old_TN  # // 拼接 TN_POS
            TKSEQ_POS = SCIC "-" old_CIC # // 拼接 TKSEQ_POS
            printf("%s,   %s\n", old_SPC, SPC)
            print old_tkgid OFS old_PCEID OFS TKSEQ_POS OFS TKSEQ_UNUSED OFS TN_POS OFS TN_UNUSED OFS old_FREETERM OFS old_CAS OFS old_SPC > trunk_file
            
            SPC = ""
            
            SCIC = TKSEQ # // 取当前的TKSEQ
            STN = TN
            old_CIC = TKSEQ # // 取当前的TKSEQ
            old_TN = TN
            reset()
            old_tkgid = new_tkgid # // 当前TKGID 赋给 old_tkgid
            old_PCEID = new_PCEID
            
            
            old_FREETERM = new_FREETERM
            old_CAS = new_CAS
            old_SPC = new_SPC
            
            next
        }
        # 2. 同一个TKGID ,分段,连续的情况,
        #if((new_tkgid == old_tkgid) && (new_PCEID == old_pceid))
        else
        {
            old_CIC = TKSEQ
            old_TN = TN
            num++       #    步距加1
            tn_num++
            distance = TKSEQ - SCIC
            distance_tn = TN - STN
            
            #print distance OFS distance_tn OFS num OFS tn_num
            if(distance != num)
            {
                for(iPos = num; iPos < distance; iPos++)
                {
                    if(TKSEQ_UNUSED == "")
                    {
                        TKSEQ_UNUSED = ""(SCIC + iPos)
                    }
                    else
                    {
                        TKSEQ_UNUSED = TKSEQ_UNUSED"&"(SCIC + iPos)
                    }
                }
                num = distance
            }
            if(distance_tn != tn_num)
            {
                for(iPos = tn_num; iPos < distance_tn; iPos++)
                {
                    if(TN_UNUSED == "")
                    {
                        TN_UNUSED = ""(STN + iPos)
                    }
                    else
                    {
                        TN_UNUSED = TN_UNUSED"&"(STN + iPos)
                    }
                }
                tn_num = distance_tn
            }
            
            next
        }   
       

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP