# nav2lin # Program Name : nav2lin.ak # Author : Eric Keyser # Email : eric@arnica.ws # Date : Nov 26, 2003 #NOTE: add one to the last lineament number to get the last one BEGIN {#FS = "," # comma deliminated files line = ""; flag = "false"; printf("# Photon Systems ASCII Format v1.0\n") printf("\n") printf("struct CultureLayer { Name Scale }\n") printf("\n") printf("struct Text { ColorName X Y Height Justification Text }\n") printf("\n") printf("struct Polyline {\n") printf(" ColorName LineWidth FillPattern Smooth Closed\n") printf(" Points[ N ] { X Y }\n") printf("}\n") printf("\n") ######################## change section below ################### colour = "Red" Width = 2 name ="2003encana" ####################### change section above #################### printf("CultureLayer \"%s\" 200000\n", name) # while ( getline ==1 && substr($0,3,4) != "LINE"); # while ( getline ==1 && substr($0,3,4) != "LINE"); # printf("%s\n",$0) i = 1 # Outer loop while ( getline == 1 ) { X[i] = $3 Y[i] = $4 line = $1 Oldline = line # Collect all the points for a closed segment while ( Oldline == line && getline == 1) { ++i Oldline = line X[i] = $3 Y[i] = $4 line = $1 } # while Numlines = i # printf("Line num %12.0f\n",Oldline) # if ( Oldline > 0 ) colour="Black" # if ( Oldline > 10000 ) colour="Dark Green" # if ( Oldline > 20000 ) colour="Red" # if ( Oldline > 30000 ) colour="Green" # if ( Oldline > 40000 ) colour="Cyan" # if ( Oldline > 50000 ) colour="Blue" # if ( Oldline > 60000 ) colour="Magenta" # if ( Oldline > 70000 ) colour="Yellow" # if ( Oldline > 80000 ) colour="Purple" # if ( Oldline > 90000 ) colour="Orange" # colour = "Red" # if ( oldcolour != colour) printf("CultureLayer \"%d0_%s\"\n", (Oldline / 10000), colour) # only one permit # oldcolour = colour #Print the attributes of the line segment, colour, Width, number of points printf("Polyline \"%s\" %s None False False\n", colour, Width); printf("%d\n",Numlines - 1) for ( i = 1; i <= (Numlines -1); i++ ) printf("%12.2f %12.2f\n",X[i],Y[i]) i = 1 X[i] = X[Numlines]; Y[i] = Y[Numlines]; ++i } # while ( getline = 1) #Print the very last line last index out by one printf("%12.2f %12.2f\n",X[Numlines],Y[Numlines]) } #Middle { } END { }