#include #include main(int argc, char *argv[]){ FILE *fp = fopen(argv[1],"r"); char buff[200000]; int ch; int i; char out[256]; int flag0, flag1; int t, th, tm, ts; float alt; float lad, lng; int n; int deg; float min; n=0; ch = 100; float feet2meters = 0.3048; //printf("read in: %s \n", argv[1]); while(ch>EOF){ ch=fgetc(fp); buff[n]=ch; // if (ch>32) printf("%d\n", ch); n++; } fclose(fp); //printf("read in: %d %s \n", n, argv[1]); flag0 = -9; flag1 = -9; for (i=0;i0 ) flag1 = i; if (flag0>0 && flag1>flag0){ strncpy(out,buff+flag0,flag1-flag0); out[flag1-flag0]='\0'; // printf("%d) %s \n",flag1-flag0, out); if (flag1-flag0==41){ //if (flag1-flag0==36){ t = atoi(out+1); th = t/10000; tm = (t/100)%100; ts = t%100; sscanf(out+8,"%f",&lad); //printf("lad: [%s] %07.2f \n", out+8, lad); sscanf(out+17,"%f",&lng); //printf("lng: [%s] %08.2f \n", out+17, lng); t = atoi(out+30); //sscanf(out+30,"%d",&t); //printf("alt: [%s] %06d \n", out+30, t); deg = lad/100; min = lad - deg*100; lad = deg + min/60.0; deg = lng/100; min = lng - deg*100; lng = -1.0*(deg+min/60.0); printf(" %02d:%02d:%02d %09.4f %010.4f %06d \n", th, tm, ts, lad, lng, t); //printf("%0f,%0f,%f \n", lng, lad, t*feet2meters); } flag0 = flag1 = -9; } if (flag1-flag0> 40) flag0 = flag1 = -9; } }