#define PROG_NAME "dbd_summary" #define PROG_DESC "extracts from the output of {dbd_predict} the data for {dbd_plot_cn}" #define PROG_VERS "1.0" /* Last edited on 2024-12-21 14:05:01 by stolfi */ #define dbd_summary_C_COPYRIGHT "Copyright © 2006,2008 by IC-UFF and IC-UNICAMP" #define PROG_HELP \ " " PROG_NAME " \\\n" \ " {IN_FILE} \\\n" \ " {OUT_FILE}" #define PROG_INFO \ "NAME\n" \ " " PROG_NAME " - " PROG_DESC "\n" \ "\n" \ "SYNOPSIS\n" \ PROG_HELP "\n" \ "\n" \ "DESCRIPTION\n" \ " Reads a file {EVENT_FILE} with a list of valid events to be considered.\n" \ "\n" \ " !!! TO BE WRITTEN !!! \n" \ "\n" \ "OPTIONS\n" \ " None.\n" \ "\n" \ "DOCUMENTATION OPTIONS\n" \ argparser_help_info_HELP_INFO "\n" \ "\n" \ "SEE ALSO\n" \ " dbd_tabulate(1), dbd_predict(1), dbd_paint(1).\n" \ "\n" \ "AUTHOR\n" \ " Created 2005-10-05 by Renatha Oliva Capua, IC-UFF.\n" \ "\n" \ "MODIFICATION HISTORY\n" \ " 2008-06-06 Various changes by by J. Stolfi, IC-UNICAMP.\n" \ "\n" \ "WARRANTY\n" \ argparser_help_info_NO_WARRANTY "\n" \ "\n" \ "RIGHTS\n" \ " " dbd_summary_C_COPYRIGHT ".\n" \ "\n" \ argparser_help_info_STANDARD_RIGHTS #include #include #include #include int main(int argc, char **argv) { int igual = 0; /* Conta o número de iguais até chegar a probabilidade que se deseja extrair do arquivo */ //float prob; /* Probabilidade que se deseja extrair do arquivo */ // char letra = 0; /* Um caracter lido do arquivo */ char nome_arq[750]; /* Nome do arquivo com as */ char fase[5]; char palavra[11]; char nome[15]; float num1 = 0.0; // float num2 = 0.0; //float num3 = 0.0; //float sdia = 0.0; // float stotal = 0.0; if (argc != 3) { fprintf (stderr, "argc = %d\n", argc); fprintf (stderr, "use: %s\n", PROG_HELP); return (-1); } //int tot_igual = atoi(argv[3]); strcpy(nome_arq, "\0"); strcpy(fase,"\0"); FILE *arq_in = open_read(argv[1], TRUE); /* abrir arquivo com a sequencia alvo */ fscanf(arq_in,"%s", nome_arq); char *name_KN = jsprintf("%s-KN.plt", argv[2]); FILE *arq_KN = open_write(name_KN, TRUE); char *name_DEF = jsprintf("%s-DEF.plt", argv[2]); FILE *arq_DEF = open_write(name_DEF, TRUE); while(!feof(arq_in)) { FILE *arq_bas = open_read(nome_arq, TRUE); /* abrir arquivo com a sequencia alvo */ /* Extrair o tamanho da fase descrita no nome do arquivo */ int cnt_arq = 0; int cnt_fase = 0; int cnt_nome = 0; while (nome_arq[cnt_arq] != '-' ) { cnt_arq++; } cnt_arq++; while (nome_arq[cnt_arq] != '-'){ fase[cnt_fase] = nome_arq[cnt_arq]; cnt_fase++; cnt_arq++; } fase[cnt_fase] = '\0'; cnt_arq++; while (nome_arq[cnt_arq] != '-' ) { cnt_arq++; }cnt_arq++; while (nome_arq[cnt_arq] != '-' ) { cnt_arq++; }cnt_arq++; while (nome_arq[cnt_arq] != '-' ) { cnt_arq++; }; cnt_arq++; while (nome_arq[cnt_arq] != '.'){ nome[cnt_nome] = nome_arq[cnt_arq]; cnt_nome++; cnt_arq++; } nome[cnt_nome] = '\0'; /*Para pegar o cabecalho*/ fscanf(arq_bas,"%s", palavra); /*Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Accu.*/ /*Para pegar a linha tracejada*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(D)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(E)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(F)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(N)*/ fscanf(arq_bas,"%s", palavra); /*----- Accu.*/ /*linha do Pr(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Accu.*/ /*linha do Pr(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Accu.*/ /*linha do Pr(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Accu.*/ /*linha do Pr(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Accu.*/ fscanf(arq_bas,"%s", palavra); /*[DEFN]*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*bases*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*considered*/ fscanf(arq_bas,"%s", palavra); /*22441.91*/ fscanf(arq_bas,"%s", palavra); /*matched*/ fscanf(arq_bas,"%s", palavra); /*accuracy*/ fscanf(arq_bas,"%s", palavra); /*=*/ fscanf(arq_bas,"%s", palavra); /*0.748*/ //------------------------------------------- /*Para pegar o cabecalho*/ fscanf(arq_bas,"%s", palavra); /*Est(K)*/ fscanf(arq_bas,"%s", palavra); /*Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Accu.*/ /*Para pegar a linha tracejada*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(K)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(N)*/ fscanf(arq_bas,"%s", palavra); /*----- Accu.*/ /*linha do Pr(K)*/ fscanf(arq_bas,"%s", palavra); /*Pr(K)*/ fscanf(arq_bas,"%s", palavra); /*Pr(K) X Est(K)*/ fscanf(arq_bas,"%s", palavra); /*Pr(K) X Est(N)*/ fscanf(arq_bas,"%f", &num1); /*Accu.*/ /*linha do Pr(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(K)*/ fscanf(arq_bas,"%s", palavra); /*Pr(N) X Est(N)*/ fscanf(arq_bas,"%s", palavra); /*Accu.*/ fscanf(arq_bas,"%s", palavra); /*[KN]*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*bases*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*considered*/ fscanf(arq_bas,"%s", palavra); /*22441.91*/ fscanf(arq_bas,"%s", palavra); /*matched*/ fscanf(arq_bas,"%s", palavra); /*accuracy*/ fscanf(arq_bas,"%s", palavra); /*=*/ fscanf(arq_bas,"%s", palavra); /*0.748*/ fprintf(arq_KN, "%-15s %s %10.3f\n", nome, fase, (num1)); //------------------------------------------- /*Para pegar o cabecalho*/ fscanf(arq_bas,"%s", palavra); /*Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Accu.*/ /*Para pegar a linha tracejada*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(D)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(E)*/ fscanf(arq_bas,"%s", palavra); /*----------- Est(F)*/ fscanf(arq_bas,"%s", palavra); /*----- Accu.*/ /*linha do Pr(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(D) X Accu.*/ /*linha do Pr(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(E) X Accu.*/ /*linha do Pr(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(D)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(E)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Est(F)*/ fscanf(arq_bas,"%s", palavra); /*Pr(F) X Accu.*/ //sdia = sdia + num3; //stotal = stotal + num1 + num2 + num3; // num1 = 0.0; num2 = 0.0; num3 = 0.0; fscanf(arq_bas,"%s", palavra); /*[DEF]*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*bases*/ fscanf(arq_bas,"%s", palavra); /*30000*/ fscanf(arq_bas,"%s", palavra); /*considered*/ fscanf(arq_bas,"%s", palavra); /*22441.91*/ fscanf(arq_bas,"%s", palavra); /*matched*/ fscanf(arq_bas,"%s", palavra); /*accuracy*/ fscanf(arq_bas,"%s", palavra); /*=*/ fscanf(arq_bas,"%f", &num1); /*0.748*/ //prob = sdia/stotal; fprintf(arq_DEF, "%-15s %s %10.3f\n", nome, fase, num1); //--------------------------------------- strcpy(nome_arq, "\0"); strcpy(fase, "\0"); fscanf(arq_in,"%s", nome_arq); igual = 0; fclose(arq_bas); } fclose(arq_in); fclose(arq_KN); fclose(arq_DEF); return(0); }