7#define MAX_IDWC_LINE_LEN 512
25 char tmp[1024], is_stdout=0;
34 if(!strcasecmp(filename,
"stdout")) is_stdout=1;
37 if(!is_stdout && access(filename, 0) != -1) {
39 if(access(tmp, 0) != -1) remove(tmp);
40 rename(filename, tmp);
44 if(is_stdout) fp=(FILE*)stdout;
45 else if((fp = fopen(filename,
"w")) == NULL) {
46 strcpy(
dfterrmsg,
"cannot open file");
return(2);}
49 n=fprintf(fp,
"%d\n", dft->
frameNr);
52 fclose(fp);
return(3);
55 for(ri=0; ri<dft->
voiNr; ri++) {
56 for(fi=0; fi<dft->
frameNr; fi++) {
57 n=fprintf(fp,
"%6.1f %18.14f %18.14f %3d\n",
58 dft->
x[fi], dft->
voi[ri].
y[fi], dft->
w[fi], ri+1);
61 fclose(fp);
return(4);
88 if(filename==NULL || dft==NULL || strlen(filename)<1) {
89 strcpy(
dfterrmsg,
"program error");
return(1);
93 fp=fopen(filename,
"r");
95 strcpy(
dfterrmsg,
"cannot open file");
return(2);
101 strcpy(
dfterrmsg,
"wrong format"); fclose(fp);
return(3);}
104 cptr=strtok(lptr,
"; \t\n\r");
if(cptr==NULL)
continue;
106 if(cptr[0]==
'#' || cptr[0]==
';')
continue;
108 fi=atoi(cptr);
break;
110 if(fi<1) {strcpy(
dfterrmsg,
"wrong format"); fclose(fp);
return(3);}
116 cptr=strtok(lptr,
"; \t\n\r");
if(cptr==NULL)
continue;
118 if(cptr[0]==
'#' || cptr[0]==
';')
continue;
123 if(ri<1) {strcpy(
dfterrmsg,
"wrong format"); fclose(fp);
return(4);}
128 strcpy(
dfterrmsg,
"out of memory"); fclose(fp);
return(11);}
132 rewind(fp); n=ri=fi=0;
136 fclose(fp);
dftEmpty(dft);
return(3);
140 cptr=strtok(lptr,
"; \t\n\r");
if(cptr==NULL)
continue;
142 if(cptr[0]==
'#' || cptr[0]==
';')
continue;
147 dft->
x[fi]=atof(cptr);
149 cptr=strtok(NULL,
"; \t\n\r");
if(cptr==NULL)
continue;
150 dft->
voi[ri].
y[fi]=atof(cptr);
152 cptr=strtok(NULL,
"; \t\n\r");
if(cptr==NULL)
continue;
153 dft->
w[fi]+=atof(cptr);
155 cptr=strtok(NULL,
"; \t\n\r");
if(cptr==NULL)
continue;
156 if(fi==0) sprintf(dft->
voi[ri].
voiname,
"%-*.*s",
158 else if(strncasecmp(dft->
voi[ri].
voiname, cptr, strlen(cptr))!=0) {
161 fclose(fp);
dftEmpty(dft);
return(4);
164 if(fi==dft->
frameNr) {fi=0; ri++;}
165 if(ri==dft->
voiNr)
break;
168 for(fi=0; fi<dft->
frameNr; fi++) dft->
w[fi]/=(
double)dft->
voiNr;
int dftSetmem(DFT *data, int frameNr, int voiNr)
void dftFrametimes(DFT *data)
int idwcRead(char *filename, DFT *dft)
int idwcWrite(DFT *dft, char *filename)
#define MAX_IDWC_LINE_LEN
Header file for libtpccurveio.
#define MAX_REGIONSUBNAME_LEN
char voiname[MAX_REGIONSUBNAME_LEN+1]