コード例 #1
0
ファイル: clrdat.c プロジェクト: E-LLP/QuIP
void clrdat(SINGLE_QSP_ARG_DECL)	/* just clears data tables */
{
	List *lp;
	Node *np;
	Trial_Class *tcp;
	Data_Tbl *dtp;
	int i;

	lp=class_list(SINGLE_QSP_ARG);
	if( lp == NO_LIST ) return;

	np=lp->l_head;
	while(np!=NO_NODE){
		tcp = (Trial_Class *) np->n_data;
		dtp = CLASS_DATA_TBL(tcp);
		if( dtp == NULL ){
			sprintf(ERROR_STRING,
		"Stimulus class %s has null data table, initializing...",
				CLASS_NAME(tcp) );
			advise(ERROR_STRING);

			dtp = alloc_data_tbl(tcp,_nvals);
		}
fprintf(stderr,"clrdat:  clearing data table for class %s\n",CLASS_NAME(tcp));
		SET_DTBL_N(dtp,0);
		for(i=0;i<DTBL_SIZE(dtp);i++){
			SET_DATUM_NTOTAL(DTBL_ENTRY(dtp,i),0);
			SET_DATUM_NCORR(DTBL_ENTRY(dtp,i),0);
		}
		np=np->n_next;
	}
fprintf(stderr,"clrdat:  DONE\n");
}
コード例 #2
0
ファイル: lookmenu.c プロジェクト: nasa/QuIP
static COMMAND_FUNC( do_read_data )	/** read a data file */
{
	FILE *fp;
	const char *filename;
	char num_str[16];

	filename=nameof("data file");
	fp=try_open( filename, "r" );
	if( !fp ) return;

	/* We used to clear the data tables here,
	 * but now they are dynamically allocated
	 * and cleared at that time...
	 */

	/* clear old classes */
	do_delete_all_classes(SINGLE_QSP_ARG);
	//curr_tcp=NULL;
	n_have_classes=0;
	if( read_exp_data(QSP_ARG  fp) != 0 ){
		fclose(fp);
		sprintf(ERROR_STRING,"do_read_data:  error return from read_exp_data, file %s",filename);
		WARN(ERROR_STRING);
		return;
	}
	fclose(fp);
	n_have_classes = eltcount(class_list());

	sprintf(num_str,"%d",n_have_classes);	// BUG?  buffer overflow
						// if n_have_classes too big???
	assign_reserved_var( "n_classes" , num_str );
	
	if( verbose ){
		sprintf(ERROR_STRING,"File %s read, %d classes, %d x-values",
			filename,n_have_classes,_nvals);
		advise(ERROR_STRING);
	}
}