⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpg.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 2 页
字号:
	current_underage = report_just.width - report_just.col[current_just].min_just_width;	/* first set pointers the the values and compute the column sizes and column text sizes */	if (static_rpt_dbg) printf("   Row %d:  Just:%d  #C:%d  Adj:%d  Widths  ",r,current_just,current_num_col, current_underage);	current_add = 0;	for (c=0 ; c<current_num_col; c++){	    if (report_just.col[current_just].col_just[c] != 'a'){		if (report_just.col[current_just].col_lock[c] == LOCKED){		    desc_column_text_size[c]=report_just.max_col_sizes[current_num_col][c];		    desc_column_size[c]=(space_pad*2) + desc_column_text_size[c];		} else {		    desc_column_ptr[c] = report_just.cell_values[c][r];		    size_adjustment = 0;		    if (c != current_num_col-1){			size_adjustment = (int)(((float)current_underage / (float)current_num_unlocked) *						(float)(c + num_span_col(current_just,c) + 1)) - current_add;			current_add += size_adjustment;		    } else {			size_adjustment += current_underage - current_add;		    }		    desc_column_text_size[c]=report_just.max_col_sizes[current_num_col][c];		    desc_column_size[c]=(space_pad*2) + desc_column_text_size[c] + size_adjustment;		    /* compute the size for this value */		    for (c2=c+1; (c2 < current_num_col) && (report_just.col[current_just].col_just[c2] == 'a'); c2++){			if (c != current_num_col-1){			    size_adjustment = (int)(((float)current_underage / (float)current_num_col) * 						    (float)(c + num_span_col(current_just,c) + 1)) - current_add;			    current_add += size_adjustment;			} else {			    size_adjustment += current_underage - current_add;			}			desc_column_size[c] += report_just.max_col_sizes[current_num_col][c2] + space_pad*2 + 1 + size_adjustment;			desc_column_text_size[c] +=  report_just.max_col_sizes[current_num_col][c2] + space_pad*2 + 1;		    }		}	    } else {		desc_column_ptr[c] = "";		desc_column_text_size[c] = desc_column_size[c] = 0;	    }	    if (static_rpt_dbg) printf("   C%d:%d-%d(%d) ",c,desc_column_text_size[c], desc_column_size[c],current_add);	}	if (static_rpt_dbg) printf("\n");	for (p=report_just.before_row_separations[r]; *p != '\0'; p++) { /* add a row separation */	    if (CENTER_PAGE && (report_just.width < PAGE_WIDTH)) print_spaces((PAGE_WIDTH - report_just.width)/2, fp);	    fprintf(fp,"|");	    for (c=0 ; c<current_num_col; c++){		if (report_just.col[current_just].col_just[c] != 'a'){		    for (x=0; x< desc_column_size[c]; x++)			fprintf(fp,"%c",*p);		    if (! is_last_just_col(current_just,c)){			int sp;			sp =  num_span_col(current_just,c);			if ( report_just.col[current_just].col_inter_space[sp + c] != ' '){			    if (*p == ' ')				fprintf(fp,"%c", report_just.col[current_just].col_inter_space[sp + c]);			    else if ((report_just.col[current_just].col_inter_space[sp + c] == '|') && (*p == '-') &&				     ((r > 0) && (report_just.col[report_just.row_just[r-1]].col_inter_space[sp + c] == '|')))				fprintf(fp,"+");			    else 				fprintf(fp,"%c", *p);			} else				    fprintf(fp,"%c", *p);		    }		}	    }	    fprintf(fp,"|\n");	    	}	while (row_not_done){	    row_not_done = 0;	    if (CENTER_PAGE && (report_just.width < PAGE_WIDTH)) print_spaces((PAGE_WIDTH - report_just.width)/2, fp);	    fprintf(fp,"|");	    for (c=0 ; c< current_num_col; c++){		column_width=desc_column_size[c];		text_width=desc_column_text_size[c];		if (report_just.col[current_just].col_just[c] != 'a'){		    switch (report_just.col[current_just].col_just[c]){		      case 'c':		      case 'C':			*fmt_str1='\0';			sprintf(fmt_str1,"%s%%%ds%s", spaces+SPACES_LEN-((column_width-text_width)/2),text_width,				spaces+SPACES_LEN-(column_width-text_width - ((column_width-text_width)/2)));			fprintf(fp,fmt_str1,				center(get_next_string_value(&(desc_column_ptr[c]),text_width),text_width));			if (*desc_column_ptr[c] != '\0')			    row_not_done = 1;			break;		      case 'r':		      case 'R':			*fmt_str1='\0';			sprintf(fmt_str1,"%s%%%ds%s",spaces+SPACES_LEN-((column_width-text_width)/2),text_width,				spaces+SPACES_LEN-(column_width-text_width - ((column_width-text_width)/2)));			fprintf(fp,fmt_str1,get_next_string_value(&(desc_column_ptr[c]),text_width));			if (*desc_column_ptr[c] != '\0')			    row_not_done = 1;			break;		      case 'l':		      case 'L':			*fmt_str1='\0';			sprintf(fmt_str1,"%s%%-%ds%s",spaces+SPACES_LEN-((column_width-text_width)/2),text_width,				spaces+SPACES_LEN-(column_width-text_width - ((column_width-text_width)/2)));			fprintf(fp,fmt_str1,get_next_string_value(&(desc_column_ptr[c]),text_width));			if (*desc_column_ptr[c] != '\0')			    row_not_done = 1;			break;		      default:			fprintf(fp,"undefined inter column space\n");		    }		    if (! is_last_just_col(current_just,c)){			int sp;			sp =  num_span_col(current_just,c);			if ( report_just.col[current_just].col_inter_space[sp + c] != ' ')			    fprintf(fp,"%c", report_just.col[current_just].col_inter_space[sp + c]);			else			    fprintf(fp," ");		    }		}	    }	    fprintf(fp,"|\n");	}	for (p=report_just.after_row_separations[r]; *p != '\0'; p++) { /* add a row separation */		    if (CENTER_PAGE && (report_just.width < PAGE_WIDTH)) print_spaces((PAGE_WIDTH - report_just.width)/2, fp);	    fprintf(fp,"|");	    for (c=0 ; c<current_num_col; c++){		if (report_just.col[current_just].col_just[c] != 'a'){		    for (x=0; x< desc_column_size[c]; x++)			fprintf(fp,"%c",*p);		    if (! is_last_just_col(current_just,c)){			int sp;			sp =  num_span_col(current_just,c);			if ( report_just.col[current_just].col_inter_space[sp + c] != ' '){			    if (*p == ' ')				fprintf(fp,"%c", report_just.col[current_just].col_inter_space[sp + c]);			    else if ((report_just.col[current_just].col_inter_space[c] == '|') && (*p == '-') &&				     ((r > 0) && (report_just.col[report_just.row_just[r-1]].col_inter_space[sp + c] == '|')))				fprintf(fp,"+");			    else 				fprintf(fp,"%c", *p);			} else				    fprintf(fp,"%c", *p);		    }		}	    }	    fprintf(fp,"|\n");	    	}    }    if (CENTER_PAGE && (report_just.width < PAGE_WIDTH)) print_spaces((PAGE_WIDTH - report_just.width)/2, fp);    print_final_line(report_just.width,fp);}int is_last_just_col(int just, int col){    int c;    if (col == report_just.col[just].num_col-1)	return(1);    c = col+1;    while ((c < report_just.col[just].num_col) && ( report_just.col[just].col_just[c] == 'a'))	c++;     if ((c == report_just.col[just].num_col))	return(1);    return(0);	   }int is_last_span_col(int just, int col){    if ((col+1 < report_just.col[just].num_col) && ( report_just.col[just].col_just[col] == 'a'))	return(0);     return(1);}void print_line(int wid, FILE *fp){    int i;    fprintf(fp,"|");    for (i=0; i<wid-2; i++)	fprintf(fp,"-");    fprintf(fp,"|\n");}void print_blank_line(int wid, FILE *fp){    int i;    fprintf(fp,"|");    for (i=0; i<wid-2; i++)	fprintf(fp," ");    fprintf(fp,"|\n");}void print_double_line(int wid, FILE *fp){    int i;    fprintf(fp,"|");    for (i=0; i<wid-2; i++)	fprintf(fp,"=");    fprintf(fp,"|\n");}void print_start_line(int wid, FILE *fp){    int i;    fprintf(fp,",");    for (i=0; i<wid-2; i++)	fprintf(fp,"-");    fprintf(fp,".\n");}void print_final_line(int wid, FILE *fp){    int i;    fprintf(fp,"`");    for (i=0; i<wid-2; i++)	fprintf(fp,"-");    fprintf(fp,"'\n");}void Desc_add_row_separation(char chr, int row_attach){    char *p;    if (row_attach == BEFORE_ROW){	for (p = report_just.before_row_separations[report_just.tot_num_row];	     (*p != '\0') && (p < report_just.before_row_separations[report_just.tot_num_row] + MAX_SEP); p++)	    ;	if (p == report_just.before_row_separations[report_just.tot_num_row] + MAX_SEP){	    fprintf(stderr,"Error: Too many separations for row %d\n",report_just.tot_num_row);	    exit(-1);	}	*p = chr; *(p+1) = '\0';    } else {	for (p = report_just.after_row_separations[report_just.tot_num_row];	     (*p != '\0') && (p < report_just.after_row_separations[report_just.tot_num_row] + MAX_SEP); p++)	    ;	if (p == report_just.after_row_separations[report_just.tot_num_row] + MAX_SEP){	    fprintf(stderr,"Error: Too many separations for row %d\n",report_just.tot_num_row);	    exit(-1);	}	*p = chr; *(p+1) = '\0';    }}int num_span_col(int just, int col){    int c, span=0;    if (col == report_just.col[just].num_col-1)	return(0);    c = col+1;    while ((c < report_just.col[just].num_col) && ( report_just.col[just].col_just[c] == 'a')){	c++; 	span++;    }    return(span);}static int iter_num_val=0;static char iter_val[MAX_COL][MAX_VALUE_LEN];static char iter_fmt[MAX_VALUE_LEN];void Desc_set_iterated_format(char *format){    strcpy(iter_fmt,format);}void Desc_set_iterated_value(char *str){    strcpy(iter_val[iter_num_val++],str);}void Desc_flush_iterated_row(void){    switch (iter_num_val){      case 1: Desc_add_row_values(iter_fmt,iter_val[0]); 	break;      case 2: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1]); 	break;      case 3: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2]); 	break;      case 4: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3]); 	break;      case 5: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4]); 	break;      case 6: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5]); 	break;      case 7: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6]); 	break;      case 8: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7]); 	break;      case 9: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8]); 	break;      case 10: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9]); 	break;      case 11: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10]); 	break;      case 12: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11]); 	break;      case 13: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12]); 	break;      case 14: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13]); 	break;      case 15: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14]); 	break;      case 16: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14],iter_val[15]); 	break;      case 17: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14],iter_val[15],iter_val[16]); 	break;      case 18: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14],iter_val[15],iter_val[16],iter_val[17]); 	break;      case 19: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14],iter_val[15],iter_val[16],iter_val[17],iter_val[18]); 	break;      case 20: Desc_add_row_values(iter_fmt,iter_val[0],iter_val[1],iter_val[2],iter_val[3],iter_val[4],iter_val[5],iter_val[6],iter_val[7],iter_val[8],iter_val[9],iter_val[10],iter_val[11],iter_val[12],iter_val[13],iter_val[14],iter_val[15],iter_val[16],iter_val[17],iter_val[18],iter_val[19]); 	break;    }    iter_num_val=0;}#ifdef __STDC__void Desc_add_row_values(char *format , ...)#elsevoid Desc_add_row_values(va_alist)va_dcl#endif{    va_list args;    char *str;    int col=0;#ifndef __STDC__        char *format;#endif#ifdef __STDC__        va_start(args,format);#else    va_start(args);    format = va_arg(args,char *);#endif    if (report_just.tot_num_row >= MAX_ROW){	fprintf(stderr,"Error: Too many rows > %d\n",MAX_ROW);	exit(-1);    }    if (static_parse_dbg) printf("Desc_add_row_values\n");    report_just.row_just[report_just.tot_num_row] = 	Desc_set_justification(format);    if (static_parse_dbg) 	printf("    Format %s   id %d\n",format,	       report_just.row_just[report_just.tot_num_row]);    for (col=0; col<report_just.col[report_just.row_just[report_just.tot_num_row]].num_col; col++){	if (report_just.col[report_just.row_just[report_just.tot_num_row]].col_just[col] != 'a'){	    str = va_arg(args, char *);	    strcpy(report_just.cell_values[col][report_just.tot_num_row],str);	    if (static_parse_dbg) printf("    value %d %s\n",col,str);	}    }    va_end(args);    report_just.tot_num_row ++;}int Desc_dump_ascii_report(char *file){    int c, r;    char *p;    FILE *fp;    if (strcmp(file,"") == 0)	return(1);    if ((fp=fopen(file,"w")) == (FILE *)NULL){	fprintf(stderr,"Error: unable to open ascii report file '%s'\n",file);	return(1);    }        if (CENTER_PAGE)	fprintf(fp,"center_page %d\n",report_just.width);    for (r=0; r<report_just.tot_num_row; r++){	for (p = report_just.before_row_separations[r]; (*p != '\0'); p++)	    fprintf(fp,"separate \"%c\" BEFORE_ROW\n",*p);	for (p = report_just.after_row_separations[r]; (*p != '\0'); p++)	    fprintf(fp,"separate \"%c\" AFTER_ROW\n",*p);	fprintf(fp,"row \"%s\"",report_just.col[report_just.row_just[r]].format_str);	for (c=0; c<report_just.col[report_just.row_just[r]].num_col; c++)	    if (report_just.col[report_just.row_just[r]].col_just[c] != 'a')		fprintf(fp," \"%s\"",report_just.cell_values[c][r]);        fprintf(fp,"\n");    }    fclose(fp);    return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -