# mapit2segp.ak #converts a mapit file without a shot point to shotpoint and DMS to decimal BEGIN { oldline = ""; i = 1 # Outer loop while ( getline == 1 ) { Lat[i] = substr($2,1,2) + substr($2,3,2)/60 + substr($2,5,4)/360000; Lon[i] = substr($2,10,3) + substr($2,13,2)/60 + substr($2,15,4)/360000; line = $1 Oldline = line # Collect all the points for a closed segment while ( Oldline == line && getline == 1) { ++i Oldline = line Lat[i] = substr($2,1,2) + substr($2,3,2)/60 + substr($2,5,4)/360000; Lon[i] = substr($2,10,3) + substr($2,13,2)/60 + substr($2,15,4)/360000; line = $1 } # while Numlines = i for ( i = 1; i <= (Numlines -1); i++ ) printf("%-20s %4d %12.6f -%-12.6f\n",Oldline, i, Lat[i],Lon[i]) i = 1 Lat[i] = substr($2,1,2) + substr($2,3,2)/60 + substr($2,5,4)/360000; Lon[i] = substr($2,10,3) + substr($2,13,2)/60 + substr($2,15,4)/360000; ++i } # while ( getline = 1) #Print the very last line last index out by one printf("%-20s %4d %12.6f -%-12.6f\n",Oldline, i, Lat[i],Lon[i]) } #Middle { } END { }