// Qucs dataset to CSV conversion. int qucs2csv (struct actionset_t * action, char * infile, char * outfile) { int ret = 0; if ((dataset_in = open_file (infile, "r")) == NULL) { ret = -1; } else if (dataset_parse () != 0) { ret = -1; } else if (dataset_result == NULL) { ret = -1; } else if (dataset_check (dataset_result) != 0) { delete dataset_result; dataset_result = NULL; ret = -1; } qucs_data = dataset_result; dataset_result = NULL; dataset_lex_destroy (); if (dataset_in) fclose (dataset_in); if (ret) return -1; if ((csv_out = open_file (outfile, "w")) == NULL) return -1; if (!strcmp (action->out, "csv")) { if (data_var != NULL) csv_producer (data_var, ";"); else { fprintf (stderr, "no data variable given (passed by -d option)\n"); ret = -1; } fclose (csv_out); return ret; } return -1; }
// Qucs dataset to Matlab conversion. int qucs2mat (struct actionset_t * action, char * infile, char * outfile) { int ret = 0; if ((dataset_in = open_file (infile, "r")) == NULL) { ret = -1; } else if (dataset_parse () != 0) { ret = -1; } else if (dataset_result == NULL) { ret = -1; } else if (dataset_check (dataset_result) != 0) { delete dataset_result; dataset_result = NULL; ret = -1; } qucs_data = dataset_result; dataset_result = NULL; dataset_lex_destroy (); if (dataset_in) fclose (dataset_in); if (ret) return -1; if ((matlab_out = open_file (outfile, "wb")) == NULL) return -1; if (!strcmp (action->out, "matlab")) { matlab_producer (); fclose (matlab_out); return ret; } return -1; }
/* This static function read a full dataset from the given file and returns it. On failure the function emits appropriate error messages and returns NULL. */ dataset * dataset::load (const char * file) { FILE * f; if ((f = fopen (file, "r")) == NULL) { logprint (LOG_ERROR, "error loading `%s': %s\n", file, strerror (errno)); return NULL; } dataset_in = f; dataset_restart (dataset_in); if (dataset_parse () != 0) { fclose (f); return NULL; } if (dataset_result != NULL) { if (dataset_check (dataset_result) != 0) { fclose (f); delete dataset_result; return NULL; } } fclose (f); dataset_lex_destroy (); dataset_result->setFile (file); return dataset_result; }