예제 #1
0
bool Veh_Type_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("VEHTYPE", INTEGER, 2);
		Add_Field ("VSUBTYPE", INTEGER, 2);
		Add_Field ("MAXVEL", DOUBLE, 6, 2);
		Add_Field ("MAXACCEL", DOUBLE, 6, 2);
		Add_Field ("LENGTH", DOUBLE, 6, 1);
		Add_Field ("CAPACITY", INTEGER, 4);
	} else {
		Add_Field ("TYPE", INTEGER, 2);
		Add_Field ("SUBTYPE", INTEGER, 2);
		Add_Field ("LENGTH", DOUBLE, 6, 1);
		Add_Field ("MAX_SPEED", DOUBLE, 6, 1);
		Add_Field ("MAX_ACCEL", DOUBLE, 6, 2);
		Add_Field ("MAX_DECEL", DOUBLE, 6, 2);
		Add_Field ("USE", STRING, 20);
		Add_Field ("CAPACITY", INTEGER, 4);
		Add_Field ("LOADING", DOUBLE, 6, 2);
		Add_Field ("UNLOADING", DOUBLE, 6, 2);
		Add_Field ("METHOD", STRING, 20);
		Add_Field ("MIN_DWELL", INTEGER, 4);
		Add_Field ("MAX_DWELL", INTEGER, 4);
	}
	return (Set_Field_Numbers ());
}
예제 #2
0
bool Link_Detail_File::Create_Fields (void) 
{
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_LinkDir_Field ();
	if (Code_Flag ()) {
		Add_Field ("CONTROL", DB_INTEGER, 1, CONTROL_CODE, true);
	} else {
		Add_Field ("CONTROL", DB_STRING, 12, CONTROL_CODE);
	}
	Add_Field ("GROUP", DB_INTEGER, 2);
	Add_Field ("LM_LENGTH", DB_DOUBLE, 6.1);
	Add_Field ("L_MERGE", DB_INTEGER, 2);
	Add_Field ("LT_LENGTH", DB_DOUBLE, 6.1);
	Add_Field ("LEFT", DB_INTEGER, 2);
	Add_Field ("LEFT_THRU", DB_INTEGER, 2);
	Add_Field ("THRU", DB_INTEGER, 2);
	Add_Field ("RIGHT_THRU", DB_INTEGER, 2);
	Add_Field ("RIGHT", DB_INTEGER, 2);
	Add_Field ("RT_LENGTH", DB_DOUBLE, 6.1);
	Add_Field ("R_MERGE", DB_INTEGER, 2);
	Add_Field ("RM_LENGTH", DB_DOUBLE, 6.1);
	if (Code_Flag ()) {
		Add_Field ("USE", DB_UNSIGNED, 2, USE_CODE, true);
		Add_Field ("LANES", DB_UNSIGNED, 2, LANE_RANGE_CODE, true);
	} else {
		Add_Field ("USE", DB_STRING, STRING_FIELD_SIZE, USE_CODE);
		Add_Field ("LANES", DB_STRING, 8, LANE_RANGE_CODE);
	}
	Add_Field ("PERIOD", DB_STRING, STRING_FIELD_SIZE);

	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #3
0
bool Parking_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("ID", INTEGER, 10);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("LINK", INTEGER, 10);
		Add_Field ("OFFSET", DOUBLE, 10, 2);
		Add_Field ("STYLE", STRING, 16);
		Add_Field ("CAPACITY", INTEGER, 6);
		Add_Field ("GENERIC", CHAR, 1);
		Add_Field ("VEHICLE", STRING, FIELD_BUFFER);
		Add_Field ("STARTTIME", STRING, TIME_BUFFER);
		Add_Field ("ENDTIME", STRING, TIME_BUFFER);
		Add_Field ("NOTES", STRING, FIELD_BUFFER);
	} else {
		Add_Field ("PARKING", INTEGER, 10);
		Add_Field ("LINK", INTEGER, 10);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("OFFSET", DOUBLE, 10, 2);
		Add_Field ("TYPE", STRING, 16);
		Add_Field ("USE", STRING, FIELD_BUFFER);
		Add_Field ("SPACE", INTEGER, 6);
		Add_Field ("START", STRING, TIME_BUFFER);
		Add_Field ("END", STRING, TIME_BUFFER);
		Add_Field ("HOURLY", INTEGER, 8);
		Add_Field ("DAILY", INTEGER, 8);
		if (Notes_Flag ()) {
			Add_Field ("NOTES", STRING, FIELD_BUFFER);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #4
0
bool Veh_Type_File::Create_Fields (void) 
{
	Add_Field ("TYPE", DB_INTEGER, 4, VEH_TYPE);
	Add_Field ("LENGTH", DB_DOUBLE, 5.1, FEET);
	Add_Field ("MAX_SPEED", DB_DOUBLE, 5.1, MPH);
	Add_Field ("MAX_ACCEL", DB_DOUBLE, 5.1, FPS2);
	Add_Field ("MAX_DECEL", DB_DOUBLE, 5.1, FPS2);
	Add_Field ("OP_COST", DB_DOUBLE, 5.1, CENT_MI);

	if (Code_Flag ()) {
		Add_Field ("USE", DB_UNSIGNED, 2, VEH_USE_CODE, true);
	} else {
		Add_Field ("USE", DB_STRING, 20, VEH_USE_CODE);
	}
	Add_Field ("CAPACITY", DB_UNSIGNED, 4, PPV);
	Add_Field ("MAX_LOAD", DB_UNSIGNED, 4, PPV);
	Add_Field ("OCCUPANCY", DB_DOUBLE, 8.2, PPV);
	Add_Field ("LOADING", DB_DOUBLE, 6.2, SPP);
	Add_Field ("UNLOADING", DB_DOUBLE, 6.2, SPP);
	if (Code_Flag ()) {
		Add_Field ("METHOD", DB_UNSIGNED, 1, LOADING_CODE, true);
	} else {
		Add_Field ("METHOD", DB_STRING, 20, LOADING_CODE);
	}
	Add_Field ("MIN_DWELL", DB_TIME, 6.1, SECONDS);
	Add_Field ("MAX_DWELL", DB_TIME, 6.1, SECONDS);
	Add_Field ("GRADE_FUNC", DB_INTEGER, 3);
	Add_Field ("FUEL_FUNC", DB_INTEGER, 3);
	Add_Field ("FUEL_CAP", DB_INTEGER, 5.1, GALLONS);

	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #5
0
bool Travel_Time_File::Create_Fields (void) 
{
	Add_Field ("HHOLD", DB_INTEGER, 4, NO_UNITS, true);
	Add_Field ("PERSON", DB_INTEGER, 2, NO_UNITS, true);
	Add_Field ("TOUR", DB_INTEGER, 1, NO_UNITS, true);
	Add_Field ("TRIP", DB_INTEGER, 1, NO_UNITS, true);
	if (Code_Flag ()) {
		Add_Field ("MODE", DB_INTEGER, 1, MODE_CODE, true);
		Add_Field ("PURPOSE", DB_INTEGER, 1, NO_UNITS, true);
		Add_Field ("CONSTRAINT", DB_INTEGER, 1, CONSTRAINT_CODE, true);
	} else {
		Add_Field ("MODE", DB_STRING, 12, MODE_CODE);
		Add_Field ("PURPOSE", DB_INTEGER, 2);
		Add_Field ("CONSTRAINT", DB_STRING, 14, CONSTRAINT_CODE);
	}
	Add_Field ("START_LINK", DB_INTEGER, 10);
	Add_Field ("END_LINK", DB_INTEGER, 10);

	Add_Field ("TRIP_START", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("BASE_START", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("STARTED", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("START_DIFF", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("TRIP_END", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("BASE_END", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("ENDED", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("END_DIFF", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("MID_TRIP", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("TTIME", DB_TIME, TIME_FIELD_SIZE, Time_Format ());

	return (Set_Field_Numbers ());
}
예제 #6
0
bool Timing_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("PLAN", INTEGER, 10);
		Add_Field ("PHASE", INTEGER, 2);
		Add_Field ("NEXTPHASES", STRING, 16);
		Add_Field ("GREENMIN", INTEGER, 3);
		Add_Field ("GREENMAX", INTEGER, 3);
		Add_Field ("GREENEXT", INTEGER, 3);
		Add_Field ("YELLOW", INTEGER, 2);
		Add_Field ("REDCLEAR", INTEGER, 2);
		Add_Field ("GROUPFIRST", INTEGER, 2);
		Add_Field ("NOTES", STRING, FIELD_BUFFER);
		//Add_Field ("GROUP", INTEGER, 2);
		Add_Field ("BARRIER", INTEGER, 2);
	} else {
		Add_Field ("TIMING", INTEGER, 10);
		Add_Field ("PHASE", INTEGER, 2);
		Add_Field ("NEXT_PHASE", STRING, 16);
		Add_Field ("MIN_GREEN", INTEGER, 3);
		Add_Field ("MAX_GREEN", INTEGER, 3);
		Add_Field ("EXT_GREEN", INTEGER, 3);
		Add_Field ("YELLOW", INTEGER, 2);
		Add_Field ("RED_CLEAR", INTEGER, 2);
		Add_Field ("RING", INTEGER, 2);
		//Add_Field ("GROUP", INTEGER, 2);
		Add_Field ("BARRIER", INTEGER, 2);
		if (Notes_Flag ()) {
			Add_Field ("NOTES", STRING, FIELD_BUFFER);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #7
0
bool TPPlus_Matrix::Read_Header (bool stat)
{
	int i;
	char *header;
	double size;
	String label;

	//---- extract the table names ----

	stat = false;
	Clear_Fields ();

	header = (char *) fh->Mnames;

	for (i=0; i < Tables (); i++) {
		label = header;
		if (label.empty ()) {
			header++;
			label ("%d") % (i + 1);
		} else {
			header += label.size () + 1;
		}
		size = sizeof (double);
		if (fh->Mspecs [i] != 'D' && fh->Mspecs [i] != 'S') {
			size += fh->Mspecs [i] / 10.0;
		}
		Add_Field (label, DB_DOUBLE, size, NO_UNITS, true);
	}
	Add_Field ("ORG", DB_INTEGER, 4, NO_UNITS, true);
	Add_Field ("DES", DB_INTEGER, 4, NO_UNITS, true);

	return (Set_Field_Numbers ());
}
예제 #8
0
bool Location_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("ID", INTEGER, 10);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("LINK", INTEGER, 10);
		Add_Field ("OFFSET", DOUBLE, 10, 2);
		Add_Field ("LAYER", STRING, 16);
		Add_Field ("EASTING", DOUBLE, 14, 2);
		Add_Field ("NORTHING", DOUBLE, 14, 2);
		Add_Field ("ELEVATION", DOUBLE, 14, 2);
		Add_Field ("TAZ", INTEGER, 10);
		Add_Field ("NOTES", STRING, FIELD_BUFFER);
	} else {
		Add_Field ("LOCATION", INTEGER, 10);
		Add_Field ("LINK", INTEGER, 10);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("OFFSET", DOUBLE, 10, 1);
		Add_Field ("X_COORD", DOUBLE, 14, 1);
		Add_Field ("Y_COORD", DOUBLE, 14, 1);
		Add_Field ("ZONE", INTEGER, 10);
		if (Notes_Flag ()) {
			Add_Field ("NOTES", STRING, FIELD_BUFFER);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #9
0
bool Boundary_File::Create_Fields (void) 
{
	Add_Field ("PARKING", INTEGER, 10);
	Add_Field ("START", STRING, TIME_BUFFER);
	Add_Field ("END", STRING, TIME_BUFFER);
	Add_Field ("SPEED", DOUBLE, 10, 2);

	return (Set_Field_Numbers ());
}
예제 #10
0
bool Count_File::Create_Fields (void) 
{
	Add_Field ("ANODE", INTEGER, 10);
	Add_Field ("BNODE", INTEGER, 10);
	Add_Field ("START", STRING, 20);
	Add_Field ("END", STRING, 20);
	Add_Field ("COUNT", INTEGER, 10);

	return (Set_Field_Numbers ());
}
예제 #11
0
bool Factor_File::Create_Fields (void) 
{
	Add_Field ("ORG", INTEGER, 5);
	Add_Field ("DES", INTEGER, 5);

	if (Period_Flag ()) {
		Add_Field ("PERIOD", INTEGER, 3);
	}
	Add_Field ("FACTOR", DOUBLE, 16, 6);

	return (Set_Field_Numbers ());
}
예제 #12
0
bool Location_File::Create_Fields (void) 
{
	Add_Field ("LOCATION", DB_INTEGER, 10);
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_LinkDir_Field ();
	Add_Field ("OFFSET", DB_DOUBLE, 8.1, METERS);
	Add_Field ("SETBACK", DB_DOUBLE, 8.1, METERS);
	Add_Field ("ZONE", DB_INTEGER, 10);
	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #13
0
bool Sign_File::Create_Fields (void) 
{
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_LinkDir_Field ();
	if (Code_Flag ()) {
		Add_Field ("SIGN", DB_UNSIGNED, 1, CONTROL_CODE, true);
	} else {
		Add_Field ("SIGN", DB_STRING, 10, CONTROL_CODE);
	}
	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #14
0
bool Coordinator_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("ID", INTEGER, 10);
		Add_Field ("TYPE", STRING, 10);
		Add_Field ("ALGORITHM", STRING, 10);
		Add_Field ("NOTES", STRING, FIELD_BUFFER);
	} else {
		Add_Field ("ID", INTEGER, 10);
		if (Notes_Flag ()) {
			Add_Field ("NOTES", STRING, FIELD_BUFFER);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #15
0
bool Ridership_File::Create_Fields (void) 
{
	Add_Field ("MODE", STRING, 16);
	Add_Field ("ROUTE", INTEGER, 10);
	Add_Field ("RUN", INTEGER, 5);
	Add_Field ("STOP", INTEGER, 10);
	Add_Field ("SCHEDULE", STRING, TIME_BUFFER);
	Add_Field ("TIME", STRING, TIME_BUFFER);
	Add_Field ("BOARD", INTEGER, 5);
	Add_Field ("ALIGHT", INTEGER, 5);
	Add_Field ("LOAD", INTEGER, 5);
	Add_Field ("FACTOR", DOUBLE, 5, 2);
	
	return (Set_Field_Numbers ());
}
예제 #16
0
bool Event_File::Create_Fields (void) 
{
	Add_Field ("HOUSEHOLD", INTEGER, 10);
	Add_Field ("PERSON", INTEGER, 2);
	Add_Field ("TRIP", INTEGER, 4);
	Add_Field ("LEG", INTEGER, 2);
	Add_Field ("MODE", INTEGER, 2);
	Add_Field ("EVENT", INTEGER, 2);
	Add_Field ("SCHEDULE", STRING, TIME_BUFFER);
	Add_Field ("ACTUAL", STRING, TIME_BUFFER);
	Add_Field ("LINK", INTEGER, 10);
	Add_Field ("OFFSET", INTEGER, 10);

	return (Set_Field_Numbers ());
}
예제 #17
0
bool Node_File::Create_Fields (void) 
{
	Add_Field ("NODE", DB_INTEGER, 10);
	Add_Field ("X_COORD", DB_DOUBLE, 14.1, METERS);
	Add_Field ("Y_COORD", DB_DOUBLE, 14.1, METERS);
	Add_Field ("Z_COORD", DB_DOUBLE, 14.1, METERS);
	if (Subarea_Flag ()) {
		Add_Field ("SUBAREA", DB_INTEGER, 4);
		Add_Field ("PARTITION", DB_INTEGER, 4);
	}
	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #18
0
bool Route_Nodes_File::Create_Fields (void) 
{
	Add_Field ("ROUTE", INTEGER, 10);
	Add_Field ("NODE", INTEGER, 10);

	if (dwell_flag) {
		Add_Field ("DWELL", INTEGER, 10);
	}
	if (time_flag) {
		Add_Field ("TIME", INTEGER, 10);
	}
	if (speed_flag) {
		Add_Field ("SPEED", DOUBLE, 10, 2);
	}
	return (Set_Field_Numbers ());
}
예제 #19
0
bool Tour_File::Create_Fields (void) 
{
	Add_Field ("HHOLD", INTEGER, 10);
	Add_Field ("PERSON", INTEGER, 3);
	Add_Field ("TOUR", INTEGER, 5);
	Add_Field ("PURPOSE", INTEGER, 2);
	Add_Field ("MODE", INTEGER, 2);
	Add_Field ("ORIGIN", INTEGER, 5);
	Add_Field ("DESTINATION", INTEGER, 5);
	Add_Field ("STOP_OUT", INTEGER, 5);
	Add_Field ("STOP_IN", INTEGER, 5);
	Add_Field ("START", INTEGER, 5);
	Add_Field ("RETURN", INTEGER, 5);
	Add_Field ("GROUP", INTEGER, 2);
	return (Set_Field_Numbers ());
}
예제 #20
0
bool Skim_File::Create_Fields (void) 
{
	Clear_Fields ();

	Matrix_File::Create_Fields ();

	if (time_flag) {
		Add_Field ("TIME", DB_TIME, 4, Time_Format (), true);
	} else {
		if (mode == WAIT_MODE) {
			Add_Field ("WAIT", DB_TIME, 2, Time_Format (), true);
		} else if (mode == BIKE_MODE || mode == OTHER_MODE) {
			Add_Field ("OTHER", DB_TIME, 2, Time_Format (), true);
		} else {
			Add_Field ("WALK", DB_TIME, 2, Time_Format (), true);

			if (mode != WALK_MODE) {
				if (mode != RIDE_MODE && mode != TRANSIT_MODE && mode != TAXI_MODE) {
					Add_Field ("DRIVE", DB_TIME, 4, Time_Format (), true);
				}
				if (mode != DRIVE_MODE) {
					if (mode != RIDE_MODE && mode != TAXI_MODE) {
						Add_Field ("TRANSIT", DB_TIME, 4, Time_Format (), true);
					}
					Add_Field ("WAIT", DB_TIME, 2, Time_Format (), true);
				}
				Add_Field ("OTHER", DB_TIME, 2, Time_Format (), true);
			}
		}
	}
	if (Length_Format () == MILES || Length_Format () == KILOMETERS) {
		Add_Field ("LENGTH", DB_DOUBLE, 4.2, Length_Format (), true);
	} else {
		Add_Field ("LENGTH", DB_INTEGER, 4, Length_Format (), true);
	}
	if (len_flag) {
		Db_Field *fld = Field ("LENGTH");

		if (fld->Units () != Length_Format ()) {
			fld->Units (Length_Format ());
		}
	}
	Add_Field ("COST", DB_INTEGER, 2, CENTS, true);
	Add_Field ("IMPEDANCE", DB_INTEGER, 4, IMPEDANCE, true);

	return (Set_Field_Numbers ());
}
예제 #21
0
bool Skim_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Header_Lines (0);
		Add_Field ("ORG", INTEGER, 5);
		Add_Field ("DES", INTEGER, 5);
		Add_Field ("MODE", INTEGER, 2);
		Add_Field ("INTERVAL", INTEGER, 3);
		Add_Field ("TIME", DOUBLE, 16, 6);
		Add_Field ("COUNT", INTEGER, 10);
		Add_Field ("VARIANCE", DOUBLE, 16, 6);
	} else {
		Add_Field ("ORG", INTEGER, 5);
		Add_Field ("DES", INTEGER, 5);
		Add_Field ("PERIOD", INTEGER, 3);

		if (total_flag) {
			Add_Field ("TIME", INTEGER, 6);
			if (length_flag) {
				Add_Field ("LENGTH", INTEGER, 8);
			}
		} else {
			Add_Field ("COUNT", INTEGER, 5);
			Add_Field ("WALK", INTEGER, 5);

			if (transit_flag) {
				Add_Field ("WAIT", INTEGER, 5);
				Add_Field ("TRANSIT", INTEGER, 5);
			}
			if (drive_flag) {
				Add_Field ("DRIVE", INTEGER, 5);
			}
			if (other_flag) {
				Add_Field ("OTHER", INTEGER, 5);
			}
			if (length_flag) {
				Add_Field ("LENGTH", INTEGER, 8);
			}
			if (transit_flag || drive_flag) {
				Add_Field ("COST", INTEGER, 5);
			}
		}
	}
	return (Set_Field_Numbers ());
}
예제 #22
0
bool Access_File::Create_Fields (void) 
{
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_Field ("FROM_ID", DB_INTEGER, 10);
	Add_Field ("TO_ID", DB_INTEGER, 10);
	if (Code_Flag ()) {
		Add_Field ("FROM_TYPE", DB_UNSIGNED, 1, ID_CODE, true);
		Add_Field ("TO_TYPE", DB_UNSIGNED, 1, ID_CODE, true);
	} else {
		Add_Field ("FROM_TYPE", DB_STRING, 8, ID_CODE);
		Add_Field ("TO_TYPE", DB_STRING, 8, ID_CODE);
	}
	Add_Field ("DIR", DB_INTEGER, 1);
	Add_Field ("TIME", DB_TIME, 2, SECONDS, true);
	Add_Field ("COST", DB_UNSIGNED, 2, CENTS, true);
	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #23
0
bool Fare_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("FROMZONE", STRING, 8);
		Add_Field ("TOZONE", STRING, 8);
		Add_Field ("MODE", STRING, 20);
		Add_Field ("COST", INTEGER, 6);
	} else {
		Add_Field ("FROM_ZONE", STRING, FIELD_BUFFER);
		Add_Field ("TO_ZONE", STRING, FIELD_BUFFER);
		Add_Field ("FROM_MODE", STRING, FIELD_BUFFER);
		Add_Field ("TO_MODE", STRING, FIELD_BUFFER);
		Add_Field ("PERIOD", STRING, FIELD_BUFFER);
		Add_Field ("CLASS", STRING, FIELD_BUFFER);
		Add_Field ("FARE", INTEGER, 6);
		if (Notes_Flag ()) {
			Add_Field ("NOTES", STRING, FIELD_BUFFER);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #24
0
bool Connect_File::Create_Fields (void) 
{
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_LinkDir_Field ();
	Add_Field ("TO_LINK", DB_INTEGER, 10);
	if (Code_Flag ()) {
		Add_Field ("LANES", DB_UNSIGNED, 2, LANE_RANGE_CODE, true);
		Add_Field ("TO_LANES", DB_UNSIGNED, 2, LANE_RANGE_CODE, true);
		Add_Field ("TYPE", DB_UNSIGNED, 1, CONNECT_CODE, true);
	} else {
		Add_Field ("LANES", DB_STRING, 8, LANE_RANGE_CODE);
		Add_Field ("TO_LANES", DB_STRING, 8, LANE_RANGE_CODE);
		Add_Field ("TYPE", DB_STRING, 8, CONNECT_CODE);
	}
	Add_Field ("PENALTY", DB_UNSIGNED, 2, IMPEDANCE, true);
	Add_Field ("SPEED", DB_DOUBLE, 5.1, MPH);
	Add_Field ("CAPACITY", DB_UNSIGNED, 8, VPH);
	if (exe->Notes_Name_Flag ()) {
		Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
	}
	return (Set_Field_Numbers ());
}
예제 #25
0
bool System_Event_File::Create_Fields (void) 
{
	if (Dbase_Format () == VERSION3) {
		Add_Field ("TIME", STRING, TIME_BUFFER);
		Add_Field ("EVENT", INTEGER, 5);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("PLAN", INTEGER, 10);
		Add_Field ("PHASE", INTEGER, 10);
		Add_Field ("RING", INTEGER, 2);
		Add_Field ("GROUP", INTEGER, 2);
		Add_Field ("STATUS", STRING, 16);
	} else {
		Add_Field ("TIME", STRING, TIME_BUFFER);
		Add_Field ("EVENT", INTEGER, 5);
		Add_Field ("NODE", INTEGER, 10);
		Add_Field ("PLAN", INTEGER, 10);
		Add_Field ("PHASE", INTEGER, 5);
		Add_Field ("RING", INTEGER, 2);
		Add_Field ("GROUP", INTEGER, 2);
		Add_Field ("STATUS", STRING, 16);
	}
	return (Set_Field_Numbers ());
}
예제 #26
0
bool TransCAD_Matrix::Read_Header (bool stat)
{
	int i;
	char label [_MAX_FLABEL];
	double size;
	Field_Type type;
	String text;

	//---- extract the table names ----

	Clear_Fields ();
	stat = false;

	type = Type ();

	if (type == DB_DOUBLE) {
		size = sizeof (double);
	} else if (type == DB_FLOAT) {
		type = DB_DOUBLE;
		size = sizeof (float);
	} else if (type == DB_SHORT) {
		type = DB_INTEGER;
		size = sizeof (short);
	} else {
		size = sizeof (int);
	}

	for (i=0; i < Tables (); i++) {
		MATRIX_GetLabel (fh, (short) i, label);
		text = label;
		Add_Field (text, type, size, NO_UNITS, true);
	}
	Add_Field ("ORG", DB_INTEGER, 4, NO_UNITS, true);
	Add_Field ("DES", DB_INTEGER, 4, NO_UNITS, true);

	return (Set_Field_Numbers ());
}
예제 #27
0
bool Fare_File::Create_Fields (void) 
{
	if (Code_Flag ()) {
		Add_Field ("FROM_ZONE", DB_UNSIGNED, 2, FARE_ZONE, true);
		Add_Field ("TO_ZONE", DB_UNSIGNED, 2, FARE_ZONE, true);
		Add_Field ("FROM_MODE", DB_UNSIGNED, 1, TRANSIT_CODE, true);
		Add_Field ("TO_MODE", DB_UNSIGNED, 1, TRANSIT_CODE, true);
		Add_Field ("PERIOD", DB_UNSIGNED, 1, TIME_PERIOD, true);
		Add_Field ("CLASS", DB_UNSIGNED, 1, CLASS_CODE, true);
		Add_Field ("FARE", DB_INTEGER, 2, CENTS, true);
	} else {
		Add_Field ("FROM_ZONE", DB_STRING, STRING_FIELD_SIZE, FARE_ZONE_RANGE);
		Add_Field ("TO_ZONE", DB_STRING, STRING_FIELD_SIZE, FARE_ZONE_RANGE);
		Add_Field ("FROM_MODE", DB_STRING, STRING_FIELD_SIZE, TRANSIT_CODE_RANGE);
		Add_Field ("TO_MODE", DB_STRING, STRING_FIELD_SIZE, TRANSIT_CODE_RANGE);
		Add_Field ("PERIOD", DB_STRING, STRING_FIELD_SIZE, TIME_PERIOD_RANGE);
		Add_Field ("CLASS", DB_STRING, STRING_FIELD_SIZE, CLASS_CODE_RANGE);
		Add_Field ("FARE", DB_INTEGER, 2, CENTS, true);
		if (exe->Notes_Name_Flag ()) {
			Add_Field ("NOTES", DB_STRING, STRING_FIELD_SIZE);
		}
	}
	return (Set_Field_Numbers ());
}
예제 #28
0
bool Snapshot_File::Create_Fields (void)
{
    if (compress) {
        Add_Field ("COMPRESS", DB_STRING, (int) sizeof (Compressed_Snapshot), METERS, true);
    } else {
        Add_Field ("HHOLD", DB_INTEGER, 10);
        Add_Field ("VEHICLE", DB_INTEGER, 4);
        if (Cell_Flag ()) {
            Add_Field ("CELL", DB_INTEGER, 1, NO_UNITS, true);
        }
        Add_Field ("TIME", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
        Add_Field ("LINK", DB_INTEGER, 10);
        Add_LinkDir_Field ();
        if (Code_Flag ()) {
            Add_Field ("LANE", DB_UNSIGNED, 1, LANE_ID_CODE, true);
        } else {
            Add_Field ("LANE", DB_STRING, 4, LANE_ID_CODE);
        }
        Add_Field ("OFFSET", DB_DOUBLE, 8.1, METERS);
        Add_Field ("SPEED", DB_DOUBLE, 8.1, KPH);
        Add_Field ("PASSENGERS", DB_INTEGER, 4);
        Add_Field ("TYPE", DB_INTEGER, 4, VEH_TYPE);
        if (Status_Flag ()) {
            Add_Field ("WAIT", DB_INTEGER, 6, SECONDS);
            Add_Field ("TIME_DIFF", DB_INTEGER, 10, SECONDS);
            Add_Field ("USER", DB_INTEGER, 3);
        }
        if (Location_Flag ()) {
            Add_Field ("X_COORD", DB_DOUBLE, 14.1, METERS);
            Add_Field ("Y_COORD", DB_DOUBLE, 14.1, METERS);
            Add_Field ("Z_COORD", DB_DOUBLE, 14.1, METERS);
            Add_Field ("BEARING", DB_DOUBLE, 6.1, DEGREES);
        }
    }
    return (Set_Field_Numbers ());
}
예제 #29
0
bool Link_Delay_File::Create_Fields (void) 
{
	Add_Field ("LINK", DB_INTEGER, 10);
	Add_LinkDir_Field ();
	if (type_flag) {
		Add_Field ("TYPE", DB_INTEGER, 1);
	}
	Add_Field ("START", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("END", DB_TIME, TIME_FIELD_SIZE, Time_Format ());
	Add_Field ("FLOW", DB_DOUBLE, 9.2, flow_units);
	Add_Field ("TIME", DB_TIME, 8.1, SECONDS);
	if (turn_flag) {
		Nest (NESTED);
		Header_Lines (2);
		Add_Field ("NCONNECT", DB_INTEGER, 2);
		Add_Field ("OUT_LINK", DB_INTEGER, 10, NO_UNITS, false, NESTED);
		Add_Field ("OUT_FLOW", DB_DOUBLE, 9.2, flow_units, false, NESTED);
		Add_Field ("OUT_TIME", DB_TIME, 8.1, SECONDS, false, NESTED);
	} else {
		Nest (NO_NEST);
		Header_Lines (1);
	}
	return (Set_Field_Numbers ());
}
예제 #30
0
bool Travel_Time_File::Create_Fields (void) 
{
	Add_Field ("HOUSEHOLD", INTEGER, 10);
	Add_Field ("PERSON", INTEGER, 5);
	Add_Field ("TRIP", INTEGER, 5);
	Add_Field ("LEG", INTEGER, 2);
	Add_Field ("MODE", INTEGER, 2);
	Add_Field ("PURPOSE", INTEGER, 2);
	Add_Field ("CONSTRAINT", INTEGER, 2);
	Add_Field ("START_LINK", INTEGER, 10);
	Add_Field ("END_LINK", INTEGER, 10);
	Add_Field ("TRIP_START", STRING, 16);
	Add_Field ("BASE_START", STRING, 16);
	Add_Field ("STARTED", STRING, 16);
	Add_Field ("START_DIFF", STRING, 16);
	Add_Field ("TRIP_END", STRING, 16);
	Add_Field ("BASE_END", STRING, 16);
	Add_Field ("ENDED", STRING, 16);
	Add_Field ("END_DIFF", STRING, 16);
	Add_Field ("MID_TRIP", STRING, 16);
	Add_Field ("DURATION", STRING, 16);

	return (Set_Field_Numbers ());
}