📄 parse.h
字号:
/* this functions parses the inputfile */char ReadData(char *Name){ FILE *File; char token[100]; char err=0,c; int ret,i; char comp_s[5]; long h; File=fopen(Name,"r"); if (File!=NULL) { while (fscanf(File,"%s ",&token)!=EOF) { Show[NumShow].movie=0; if (strncmp(token,"//",2)==0) do ret=fscanf(File,"%c",&c); while ((c!=10) && (ret!=EOF)); else if (strcmp(token,"dx")==0) if (fscanf(File,"%lf",&dx)!=1) err=1; else; else if (strcmp(token,"dt")==0) if (fscanf(File,"%lf",&dt)!=1) err=1; else; else if (strcmp(token,"time")==0) if (fscanf(File,"%lf",&tend)!=1) err=1; else; else if (strcmp(token,"Nx")==0) if (fscanf(File,"%d",&Nx)!=1) err=1; else; else if (strcmp(token,"Ny")==0) if (fscanf(File,"%d",&Ny)!=1) err=1; else; else if (strcmp(token,"Nz")==0) if (fscanf(File,"%d",&Nz)!=1) err=1; else; else if (strcmp(token,"matlaboutput")==0) matlab=1; else if (strcmp(token,"box")==0) if (fscanf(File,"%d %d %d %d %d %d %lf %lf", & Box[NumBox].x1,& Box[NumBox].x2, & Box[NumBox].y1,& Box[NumBox].y2, & Box[NumBox].z1,& Box[NumBox].z2, & Box[NumBox].sigma,& Box[NumBox].eps)!=8) err=1; else NumBox++; else if (strcmp(token,"cone")==0) if (fscanf(File,"%c %d %d %d %d %d %d %lf %lf", & Cone[NumCone].direction,& Cone[NumCone].x1,& Cone[NumCone].x2, & Cone[NumCone].r1,& Cone[NumCone].r2, & Cone[NumCone].y,& Cone[NumCone].z, & Cone[NumCone].sigma,& Cone[NumCone].eps)!=9) err=1; else NumCone++; else if (strcmp(token,"voltage")==0) if (fscanf(File,"%d %d %d %d %d %d %lf %c %lf %lf %lf", & Volt.x1,& Volt.x2, & Volt.y1,& Volt.y2, & Volt.z1,& Volt.z2, & Volt.voltage,& Volt.direction,& Volt.timeon,& Volt.time,& Volt.R)!=11) err=1; else ; else if (strcmp(token,"R")==0) if (fscanf(File,"%d %d %d %d %d %d %lf %c", & R[NumR].x1,& R[NumR].x2, & R[NumR].y1,& R[NumR].y2, & R[NumR].z1,& R[NumR].z2, & R[NumR].R,& R[NumR].direction)!=8) err=1; else NumR++; else if (strcmp(token,"C")==0) if (fscanf(File,"%d %d %d %d %d %d %lf %c", & C[NumC].x1,& C[NumC].x2, & C[NumC].y1,& C[NumC].y2, & C[NumC].z1,& C[NumC].z2, & C[NumC].C,& C[NumC].direction)!=8) err=1; else NumC++; else if (strcmp(token,"show_J")==0) if (fscanf(File,"%c %d %d", & Show[NumShow].plane, & Show[NumShow].value,& Show[NumShow].when)!=3) err=1; else { Show[NumShow].type=1; NumShow++; } else if (strcmp(token,"show_D")==0) if (fscanf(File,"%c %d %d", & Show[NumShow].plane, & Show[NumShow].value,& Show[NumShow].when)!=3) err=1; else { Save_old=1; Show[NumShow].type=2; NumShow++; } else if (strcmp(token,"show_Component")==0) if (fscanf(File,"%s %c %d %d", & comp_s,& Show[NumShow].plane, & Show[NumShow].value,& Show[NumShow].when)!=4) err=1; else { Show[NumShow].type=0; Show[NumShow].comp=0; if (strcmp(comp_s,"Hy")==0) Show[NumShow].comp=1; if (strcmp(comp_s,"Hz")==0) Show[NumShow].comp=2; if (strcmp(comp_s,"Ex")==0) Show[NumShow].comp=3; if (strcmp(comp_s,"Ey")==0) Show[NumShow].comp=4; if (strcmp(comp_s,"Ez")==0) Show[NumShow].comp=5; NumShow++; } else if (strcmp(token,"show_Emag")==0) if (fscanf(File,"%c %d %d", & Show[NumShow].plane, & Show[NumShow].value,& Show[NumShow].when)!=3) err=1; else { Show[NumShow].type=7; NumShow++; } else if (strcmp(token,"show_Hmag")==0) if (fscanf(File,"%c %d %d", & Show[NumShow].plane, & Show[NumShow].value,& Show[NumShow].when)!=3) err=1; else { Show[NumShow].type=8; NumShow++; } else if (strcmp(token,"show_Vplane")==0) if (fscanf(File,"%c %d %s %d %d %d %d %d ", & Show[NumShow].plane,& Show[NumShow].value, & comp_s,& Show[NumShow].x1, & Show[NumShow].x2,& Show[NumShow].y1, & Show[NumShow].y2,& Show[NumShow].when)!=8) err=1; else { Show[NumShow].type=3; Show[NumShow].comp=3; if (strcmp(comp_s,"y")==0) Show[NumShow].comp=4; if (strcmp(comp_s,"z")==0) Show[NumShow].comp=5; NumShow++; } else if (strcmp(token,"show_V")==0) if (fscanf(File,"%d %d %d %d %d %d %d", & Show[NumShow].x1,& Show[NumShow].x2, & Show[NumShow].y1,& Show[NumShow].y2, & Show[NumShow].z1,& Show[NumShow].z2, & Show[NumShow].when)!=7) err=1; else { Show[NumShow].type=4; NumShow++; } else if (strcmp(token,"movie")==0) if (fscanf(File,"%d ",& i)!=1) err=1; else if (fscanf(File,"%lf %lf %d %s %c", & Show[i-1].c1,& Show[i-1].c2, & Show[i-1].num_pic,& Show[i-1].Name,& Show[i-1].quality)!=5) err=1; else { Show[i-1].movie=1; if (i>NumShow) err=1; } else err=1; } fclose(File); } else err=1; return err;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -