VRPProblem ReadVRP(string fn) { VRPReadMode rm = VRPReadMode.BASIC_INFO; VRPProblem p = new VRPProblem(); string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt"); foreach (string line in lines) { if (rm == VRPReadMode.BASIC_INFO) { if (line.Contains("NAME")) { p.Name = line.Split(':')[1].Trim(); } if (line.Contains("BEST_KNOWN")) { p.BestKnown = Convert.ToDouble(line.Split(':')[1].Trim()); } if (line.Contains("DIMENSION")) { p.Capacity = Convert.ToDouble(line.Split(':')[1].Trim()); } if (line.Contains("DIMENSION")) { p.Dimension = Convert.ToInt32(line.Split(':')[1].Trim()); p.Requests = new XYC[p.Dimension]; } if (line.Contains("NODE_COORD_SECTION")) { rm = VRPReadMode.COORDINATES; } if (line.Contains("DEMAND_SECTION")) { rm = VRPReadMode.DEMANDS; } } else if (rm == VRPReadMode.COORDINATES) { var parts = line.Split(); var reqIdx = Convert.ToInt32(parts[0]); var x = Convert.ToDouble(parts[1]); var y = Convert.ToDouble(parts[2]); p.Requests[reqIdx].X = x; p.Requests[reqIdx].X = y; } else if (rm == VRPReadMode.DEMANDS) { var parts = line.Split(); var reqIdx = Convert.ToInt32(parts[0]); var d = Convert.ToDouble(parts[1]); p.Requests[reqIdx].D = d; } } return(p); }
VRPProblem ReadVRP(string fn) { VRPReadMode rm = VRPReadMode.BASIC_INFO; VRPProblem p = new VRPProblem(); string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt"); foreach (string line in lines) { if (rm == VRPReadMode.BASIC_INFO) { if (line.Contains("NAME")) p.Name = line.Split(':')[1].Trim(); if (line.Contains("BEST_KNOWN")) p.BestKnown = Convert.ToDouble(line.Split(':')[1].Trim()); if (line.Contains("DIMENSION")) p.Capacity = Convert.ToDouble(line.Split(':')[1].Trim()); if (line.Contains("DIMENSION")) { p.Dimension = Convert.ToInt32(line.Split(':')[1].Trim()); p.Requests = new XYC[p.Dimension]; } if (line.Contains("NODE_COORD_SECTION")) rm = VRPReadMode.COORDINATES; if (line.Contains("DEMAND_SECTION")) rm = VRPReadMode.DEMANDS; } else if (rm == VRPReadMode.COORDINATES) { var parts = line.Split(); var reqIdx = Convert.ToInt32( parts[0] ); var x = Convert.ToDouble( parts[1] ); var y = Convert.ToDouble( parts[2] ); p.Requests[reqIdx].X = x; p.Requests[reqIdx].X = y; } else if (rm == VRPReadMode.DEMANDS) { var parts = line.Split(); var reqIdx = Convert.ToInt32(parts[0]); var d = Convert.ToDouble(parts[1]); p.Requests[reqIdx].D = d; } } return p; }