/*-----------------------------*/ /* プログラム:gccGRPARA-png.c */ /*-----------------------------*/ #include #include #include #define MM 10 /*gnuplot用構造体宣言*/ /*scom,sxjiku,syjiku :タイトル(凡例),x軸ラベル,y軸ラベル*/ /*slogx,xmin,xmax,dx,sxfmt :x軸種,x軸最小値,x軸最大値,x軸増分,x軸書式*/ /*slogy,ymin,ymax,dy,syfmt :y軸種,y軸最小値,y軸最大値,y軸増分,y軸書式*/ struct GPdata{ char scom[100];char sxjiku[100];char syjiku[100]; char slogx[3];double xmin;double xmax;double dx;char sxfmt[20]; char slogy[3];double ymin;double ymax;double dy;char syfmt[20]; }; /*関数プロトタイプ*/ void main_part(char fnameR[50],char fnameW[50]); void GPLOT(char fnameW[50],int mcol,struct GPdata gp,char legend[MM][20]); /*---------------------------------------------------------------------------*/ int main(int argc,char *argv[]) { char fnameR[50]=""; /*入力ファイル名*/ char fnameW[50]=""; /*出力ファイル名*/ strcpy(fnameR,argv[1]); strcpy(fnameW,argv[2]); main_part(fnameR,fnameW); printf("リターンキーを押してください"); getchar(); return 0; } /*---------------------------------------------------------------------------*/ void main_part(char fnameR[50],char fnameW[50]) { char dat[256]="",sv[100]=""; int i,j,ndata,mcol; double datax,datay[MM]; struct GPdata gp={ "","","", "",0.0,0.0,0.0,"", "",0.0,0.0,0.0,"" }; char legend[MM][20]={"","","","","","","","","",""};/*凡例*/ FILE *fin,*fout,*ftemp; /*データ入力*/ fin=fopen(fnameR,"r"); fgets(dat,sizeof dat,fin); strcpy(sv,strtok(dat,",")); strncat(gp.scom,sv,strlen(sv)-1); fgets(dat,sizeof dat,fin); strcpy(gp.sxjiku,strtok(dat,",")); strcpy(sv,strtok(NULL,",")); strncpy(gp.syjiku,sv,strlen(sv)-1); fgets(dat,sizeof dat,fin); strcpy(gp.slogx,strtok(dat,",")); gp.xmin=atof(strtok(NULL,",")); gp.xmax=atof(strtok(NULL,",")); if(strncmp(gp.slogx,"N",1)==0){ gp.dx=atof(strtok(NULL,",")); strcpy(sv,strtok(NULL,",")); strncpy(gp.sxfmt,sv,strlen(sv)-1); } fgets(dat,sizeof dat,fin); strcpy(gp.slogy,strtok(dat,",")); gp.ymin=atof(strtok(NULL,",")); gp.ymax=atof(strtok(NULL,",")); if(strncmp(gp.slogy,"N",1)==0){ gp.dy=atof(strtok(NULL,",")); strcpy(sv,strtok(NULL,",")); strncpy(gp.syfmt,sv,strlen(sv)-1); } fgets(dat,sizeof dat,fin); ndata=atoi(strtok(dat,","))-1; mcol=atoi(strtok(NULL,",")); fgets(dat,sizeof dat,fin); strtok(dat,","); for(j=1;j<=mcol;j++){ strcpy(sv,strtok(NULL,",")); if(j==mcol){ strncpy(legend[j-1],sv,strlen(sv)-1); }else{ strcpy(legend[j-1],sv); } } /*数値データの読み込みと一時ファイル書き出し*/ ftemp=fopen("temp.prn","w"); for(i=0;i<=ndata;i++){ fgets(dat,sizeof dat,fin); datax=atof(strtok(dat,",")); if(strncmp(gp.slogx,"L",1)==0){ if(datax