/* curredit.c reads a lat/lon fix file and fixes lat/lon in '.cur' files h1071x01.cur Lon -69.816666 a1071x01.cur Lon -69.816666 a0107p01.cur Lon -69.826668 h0107p01.cur Lon -69.826668 a0107t01.cur Lon -69.816666 h0107t01.cur Lon -69.816666 a1861r01.cur lat 40.515778 lon -70.208000 h1861r01.cur lat 40.515778 lon -70.208000 a1891x01.cur Lon -69.024223 h1891x01.cur Lon -69.024223 h2083x01.cur Lat 40.541111 A4400401.cur lon -70.0000000 A4400402.cur lon -70.0000000 A4400403.cur lon -70.0000000 A4400404.cur lon -70.0000000 A4400405.cur lon -70.0000000 A4400406.cur lon -70.0000000 A4400407.cur lon -70.0000000 ABOST701.cur lat 42.366666667 lon -71.0166666666667 AEB07-01.cur Lon -70.0 AEB34701.cur Lon -73.099998 AEB34702.cur Lon -73.099998 AEB34703.cur Lon -73.099998 AEB34704.cur Lon -73.099998 AEB34705.cur Lon -73.099998 AEB34706.cur Lon -73.099998 AEB34707.cur Lon -73.099998 AGLOU101.cur lat 42.603554 lon -70.690002 ALIGHT01.cur Lat 42.426888 Lon -70.800003 ALIGHT02.cur Lat 42.426888 Lon -70.800003 ALIGHT03.cur Lat 42.426888 Lon -70.800003 ALOGAN02.cur lat 42.36666667 lon -71.01666666667 ALOGAN03.cur lat 42.36666667 lon -71.01666666667 ALOGAN04.cur lat 42.36666667 lon -71.01666666667 ALOGAN01.cur lat 42.36666667 lon -71.01666666667 APTOWN01.cur Lat 42.085556 Lon -70.255554 */ #include #include #define NUMDAT 50 #define NUMCOM 10 struct info { int order; char name[20]; char units[20]; char codes[20]; float depth; char inst[20]; float min,max; }; struct time { int da,mo,yr,hr,min,sec; }; struct header { char id[38]; struct time start_time,stop_time; long cycles,num_days; char expt[32]; char date_created[32]; struct time time_create; float water_depth; /* meters */ float mag_var; /* degrees */ float lat,lon; /* degrees */ float sampling_interval; /* seconds */ struct info Data[NUMDAT]; char comment[NUMCOM][80]; int num_var; int order[NUMDAT]; char dummy[28]; }Hdr; main(argc,argv) int argc; char *argv[]; { int i,j,k; char string[100],str0[50],str1[50],str2[50]; double deg1,deg2; int num; FILE *fpfix,*fpdat; if(argc<2) { printf("curredit \n\n"); exit(0); } fpfix=fopen(argv[1],"rt"); if(!fpfix) { printf("Could not open '%s' to read.\n\n",argv[1]); exit(0); } while(fgets(string,100,fpfix)) { num=sscanf(string,"%s%s%lf%s%lf",str0,str1,°1,str2,°2); fpdat=fopen(str0,"r+b"); if(fpdat) { fread((char *)&Hdr,sizeof(struct header),1,fpdat); if(num>=3) { if(strcmpi(str1,"lat")==0) { printf("lat corrected from %f to ",Hdr.lat); Hdr.lat=deg1; printf("%f\n",Hdr.lat); } else if(strcmpi(str1,"lon")==0) { printf("lon corrected from %f to ",Hdr.lon); Hdr.lon=deg1; printf("%f\n",Hdr.lon); } } if(num>3) { if(strcmpi(str2,"lat")==0) { printf("lat corrected from %f to ",Hdr.lat); Hdr.lat=deg2; printf("%f\n",Hdr.lat); } else if(strcmpi(str2,"lon")==0) { printf("lon corrected from %f to ",Hdr.lon); Hdr.lon=deg2; printf("%f\n",Hdr.lon); } } rewind(fpdat); fwrite((char *)&Hdr,sizeof(struct header),1,fpdat); fclose(fpdat); getch(); } else printf(" ----------- Could not open '%s' data file\n",str0); } }