²é¿´: 1508  |  »Ø¸´: 9
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

µ­À¶ÓÄÏã

гæ (³õÈëÎÄ̳)

[ÇóÖú] ³ÌÐòÇó½â£ºÖظ´µÄÏàͬÊý¾ÝÓÃͬÑùµÄ´úÂëÈ¡´ú

СŮÓÐÈçÏÂÊý¾Ý£¬Æ¬¶Î½ØÈ¡ÈçÏ£¨Ã¿ÁÐÓÃÁËÖÆ±í·û·Ö¸ô£©
Col1        Col2        Col3        Col4        Col5        Col6
1        G L        0        0        1        0
1        EL        0        0        2        0
1        (5)W S        G L        EL        2        0
1        G S        0        0        1        0
1        A S        0        0        2        0
1        (10)A D        G S        A S        2        0
1        (65)B        B D        (10)A D        2        0
1        M M K        (4)M K        (65)B        2        0

2        J K        0        0        1        0
2        A        0        0        2        0
2        P R        0        0        1        0
2        A R        0        0        2        0
2        (59)M Z J K        A        2        0
2        (30)M R        (8)A R        (19)L R        1        0

ÆäÖеÚÒ»Áбíʾ×éºÅ£¬Ï£ÍûµÃµ½ÈçϵĽá¹û£º
1. ÔÚÿһ×éÀ²»´øÓÐÊý×ÖµÄ×ÖĸÏÓ÷ûºÅ±íʾ¡£ÆäÖоßÓÐÏàͬ×ÖĸµÄÏîÄ¿£¨Ã»ÓÐÊý×ÖµÄ×ÖĸÁУ©£¬ÓÃÏàͬ·ûºÅ±íʾ£¬ÈçNA1£¬ÈçµÚÒ»ÐÐG L¡ª¡ª¡ª¡ªNA1£¬µÚÈýÐеÄG LÒ²ÊÇNA1£¬µ«ÊǵڶþÐеÄELΪNA2
2.ͬһ×éÀ´øÓÐÊý×ÖµÄ×ÖĸÏ×Öĸɾ³ý£¬Ö»ÁôÏÂÊý×Ö


×Ô¼º³¢ÊÔµÄдÁËÏ£¬·¢ÏÖ£¬ÂÒ³ÉÁËÒ»ÍÅ£¬½ô¼±ÇóÖú¸÷λ´ïÈË£¬ÏÈл¹ýÀ²£¡£¡£¡
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

anntoy

ľ³æ (ÖøÃûдÊÖ)

ÓÃcдÁ˸ö£¬µÚÒ»ÐÐÄǸö±êÌâ´¦Àí²»ÁË
CODE:
#include
#include
#include

#define INBUFSIZE 1024
#define OUTBUFSIZE 100
#define MAXLET 50
#define MAXINDEX 50

char table[MAXINDEX][MAXLET];
int maxindex;

int isAllNum(char *p)
{
        while(*p >= '0' && *p <= '9') {
                p++;
        }
        return *p == '\t' || !*p;
}

int isAllLetter(char *p)
{
        while((*p >= 'a' && *p <= 'z')||(*p >= 'A' && *p <= 'Z')) {
                p++;
        }
        return *p == '\t' || !*p;
}

int kickLetter(char *in)
{
        int i = 0;
        char *out = in;
        while(*in){
                if(*in >= '0' && *in <= '9') {
                        *out = *in;
                        out++;
                        i++;
                }
                in++;
        }
        *(out++) = '\t';
        *out = 0;
        return ++i;
}

int getcol(char *in, char *out)
{
        int i = 0;
        while(*(in + i) != '\t' && *(in + i)) {
                *(out + i) = *(in + i);
                i++;
        }       
        *(out + i) = 0;
        return i == 0 ? 0 : i + !!*(in + i);
}

int getIndex(char *p)
{
        int i = maxindex;
        while(i--)
                if(!strcmp(table[i], p))
                        return i;
        maxindex++;
        sprintf(table[maxindex], p);
        return maxindex;
}

int main()
{
        char *inbuf, *outbuf;
        int group = 0, ret, ret2;
        FILE * fpi, *fpo;
        fpi = fopen("in","r");
        fpo = fopen("out","w");
        inbuf = malloc(INBUFSIZE);
        outbuf = malloc(OUTBUFSIZE);
        while(fgets(inbuf, INBUFSIZE, fpi)){
                if(*inbuf == '\n'){
                        fwrite("\n", 1, 1, fpo);
                        continue;
                }                       
                if(inbuf[strlen(inbuf) - 1] == '\t')
                        inbuf[strlen(inbuf) - 1] = 0;
                ret = getcol(inbuf, outbuf);
                if(group != atoi(outbuf)){
                        group = atoi(outbuf);
                        maxindex = 0;
                }
                fwrite(inbuf, ret, 1, fpo);
                while(ret2 = getcol(inbuf + ret, outbuf)){
                        ret += ret2;
                        if(isAllNum(outbuf)){
                                ret2 = sprintf(outbuf, "%s\t", outbuf);
                                fwrite(outbuf, ret2, 1, fpo);
                        } else if(isAllLetter(outbuf)) {
                                ret2 = sprintf(outbuf, "NA%d\t", getIndex(outbuf));
                                fwrite(outbuf, ret2, 1, fpo);
                        } else {
                                ret2 = kickLetter(outbuf);
                                fwrite(outbuf, ret2, 1, fpo);
                        }
                }
                fseek(fpo, -1, SEEK_CUR);
                fwrite("\n", 1, 1, fpo);
        }
        fclose(fpi);
        fclose(fpo);
        free(inbuf);
        return 0;
}

7Â¥2012-07-07 12:29:19
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 10 ¸ö»Ø´ð

jjdg

°æÖ÷ (ÖªÃû×÷¼Ò)

ÓÅÐã°æÖ÷

»¹ÊDz»Ì«Çå³þÄãµÄÒâͼ
ŬÁ¦Ñ§Ï°£¡ÒÔÕýµ±Í¾¾¶£¡»ñµÃÐèÒªµÄ֪ʶ£¡
2Â¥2012-07-07 01:15:44
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

µ­À¶ÓÄÏã

гæ (³õÈëÎÄ̳)

ÒýÓûØÌû:
2Â¥: Originally posted by jjdg at 2012-07-07 01:15:44
»¹ÊDz»Ì«Çå³þÄãµÄÒâͼ

¶÷£¬¾ÍÊǰ¡£¬Êý¾ÝÖеÚÒ»Áбíʾ×éºÅ£¬Ã¿¸ö×鶼ϣÍû×öµ½ÒÔϵÄÊÂÇ飬Èç×éÒ»
1.ÓÐ×ÖĸûÓÐÊý×ÖµÄÏîÄ¿£¬¶¼Ìæ»»³ÉNAi£¬ÆäÖÐi µÄȡֵ¸ù¾ÝÇé¿ö¶ø¶¨. ÈçµÚÒ»¸öÅö¼ûµÄ×Öĸ×éºÏÊÇG L£¬ÄÇô×ÔÈ»ÊÇNA 1£¬ ¶øµÚÒ»Ðк͵ÚÈýÐеÄ×ÖĸÏàͬ£¬¶¼ÊÇ G L£¬ÄÇô¾ÍÓÃÏàͬµÄNA1±íʾ£¬µÚ¶þÐÐELÔòÓÃNA2±íʾ£¬ÒÀ´ÎÀàÍÆ¡£

2.ÓÐ×Öĸ£¬ÓÐÊý×ÖµÄÏîÄ¿£¬Ö»ÁôÏÂÊý×Ö£¬²»Òª×Öĸ¡£

»¹ÓÐÄÄÀï²»Çå³þô£¿
3Â¥2012-07-07 05:35:57
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

jackie1179

ľ³æ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
¸øÄãдÁ˸öperl½Å±¾£¬Ï£ÍûÄܹ»°ïµ½Äã¡£
Ó÷¨£ºperl  ./pro.pl  input_file output_file
ÌùÉÏ´úÂë:
#!/usr/bin/perl -w

unless(@ARGV) {
  die "Arguments not enough!$!";
}
$in = $ARGV[0];
$out = $ARGV[1];
open(IN,"$in" || die "Cannot open this file!$!";
open(OUT,">$out" || die "Cannot write to this file!$!";
undef %string;
$cnt = 0;
while( {
  chomp;
  @array = split /\t/;
  foreach $ele(@array) {
    if($ele lt '0' || $ele gt '9') {
      print $ele,"\t";
      if($ele =~ /\((\d+)\)/) {
        $ele = $1;
      } else {
        if(!defined $string{$ele}) {
         
          $cnt++;
          $string{$ele} = $cnt;
          $ele = "NA" . $cnt;
        } else {
          $ele = "NA" . $string{$ele};
        }
      
      }
      
    }
    print OUT "$ele\t";
  }
  print OUT "\n";
  
}

close IN;
close OUT;
4Â¥2012-07-07 10:08:13
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 08¹¤Ñ§µ÷¼Á +5 Óû§573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[¿¼ÑÐ] 290Çóµ÷¼Á +4 ^O^Ø¿ 2026-03-19 4/200 2026-03-20 11:51 by ѧԱ8dgXkO
[¿¼ÑÐ] 317Çóµ÷¼Á +4 Éê×ÓÉêÉê 2026-03-19 8/400 2026-03-20 11:20 by Éê×ÓÉêÉê
[¿¼ÑÐ] ²ÄÁÏר˶ӢһÊý¶þ306 +6 z1z2z3879 2026-03-18 6/300 2026-03-20 08:49 by xingguangj
[¿¼ÑÐ] Ò»Ö¾Ô¸ËÕÖÝ´óѧ²ÄÁÏÇóµ÷¼Á£¬×Ü·Ö315£¨Ó¢Ò»£© +3 sbdksD 2026-03-19 3/150 2026-03-19 23:21 by fmesaito
[¿¼ÑÐ] ÉúÎïѧµ÷¼ÁÕÐÈË£¡£¡£¡ +3 ɽº£Ììá° 2026-03-17 4/200 2026-03-19 21:34 by ÔõôÊÍ»³
[¿¼ÑÐ] Ò»Ö¾Ô¸Ìì½ò´óѧ»¯Ñ§¹¤ÒÕרҵ£¨081702£©315·ÖÇóµ÷¼Á +11 yangfz 2026-03-17 11/550 2026-03-19 15:06 by houyaoxu
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +6 Ð÷ÐÒÓë×Ó 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[¿¼ÑÐ] 354Çóµ÷¼Á +4 Tyoumou 2026-03-18 7/350 2026-03-18 21:45 by Tyoumou
[¿¼ÑÐ] ²ÄÁÏרҵÇóµ÷¼Á +5 hanamiko 2026-03-18 5/250 2026-03-18 20:19 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 280Çóµ÷¼Á +6 ¹¾ààÏþÏþ 2026-03-18 7/350 2026-03-18 11:25 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 332Çóµ÷¼Á +6 Zz°æ 2026-03-13 6/300 2026-03-17 17:03 by ruiyingmiao
[¿¼ÑÐ] 302Çóµ÷¼Á +4 С¼Öͬѧ123 2026-03-15 8/400 2026-03-17 10:33 by С¼Öͬѧ123
[¿¼ÑÐ] 0854¿ØÖƹ¤³Ì 359Çóµ÷¼Á ¿É¿çרҵ +3 626776879 2026-03-14 9/450 2026-03-16 17:42 by 626776879
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 304Çóµ÷¼Á +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703·½Ïò310·ÖÇóµ÷¼Á +3 ŬÁ¦·Ü¶·112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶Çóµ÷¼Á +6 Ì«Ïë½ø²½ÁË0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[¿¼ÑÐ] 070303 ×Ü·Ö349Çóµ÷¼Á +3 LJY9966 2026-03-15 5/250 2026-03-16 14:24 by xwxstudy
[¿¼ÑÐ] 297Ò»Ö¾Ô¸ÉϽ»085600Çóµ÷¼Á +5 Ö¸¼â°ËǧÀï 2026-03-14 5/250 2026-03-14 17:26 by a²»Ò×
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û