private void Load_Button_Click(object sender, RoutedEventArgs e) { start_Button.IsEnabled = true; save_Button.IsEnabled = true; string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); using (StreamReader inputFile = new StreamReader(System.IO.Path.Combine(exePath, "plik1.txt"))) { var lineA = inputFile.ReadLine(); var valuesA = lineA.Split(';'); if (!Int32.TryParse(valuesA[0], out clientsCount)) { throw new Exception(); } clientCount_textBox.Text = clientsCount.ToString(); DrawX.SendData(mainGrid, clientsCount); if (!Int32.TryParse(valuesA[1], out minMass)) { throw new Exception(); } min_textBox.Text = minMass.ToString(); if (!Int32.TryParse(valuesA[2], out maxMass)) { throw new Exception(); } max_textBox.Text = maxMass.ToString(); clients = new Point[clientsCount]; clientsOrders = new int[clientsCount]; int i = 0; while (!inputFile.EndOfStream) { var line = inputFile.ReadLine(); var values = line.Split(';'); Double.TryParse(values[0], out double value0); Double.TryParse(values[1], out double value1); clients[i] = new Point(value0, value1); Int32.TryParse(values[2], out int value2); clientsOrders[i] = value2; i++; } } DrawX.RemoveClients(); DrawX.RemoveLines(); DrawX.DrawClients(clients); start_Button.IsEnabled = true; save_Button.IsEnabled = true; }
private void UpdateParams() { clientCount_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(clientCount_textBox.Text, out clientsCount)) { throw new Exception(); } }); avaMoves = ((clientsCount - 2) * (clientsCount - 3)) / 2; DrawX.SendData(mainGrid, clientsCount); cadenceMod_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(cadenceMod_textBox.Text, out cadenceMod)) { throw new Exception(); } }); cadence = (int)(clientsCount * (cadenceMod / 100.0)); percMaxTabu_textBox.Dispatcher.Invoke(() => { if (!Double.TryParse(percMaxTabu_textBox.Text, out percMaxTabu)) { throw new Exception(); } }); maxTabu = (int)((percMaxTabu * 0.01) * avaMoves); cap_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(cap_textBox.Text, out capacity)) { throw new Exception(); } }); min_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(min_textBox.Text, out minMass)) { throw new Exception(); } }); max_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(max_textBox.Text, out maxMass)) { throw new Exception(); } }); aspirationPlus_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(aspirationPlus_textBox.Text, out aspirationPlus)) { throw new Exception(); } }); aspirationPlusPlus_textBox.Dispatcher.Invoke(() => { if (!Int32.TryParse(aspirationPlusPlus_textBox.Text, out aspirationPlusPlus)) { throw new Exception(); } }); }
/*public static double[] percMaxTabu_T = { 0.1, 0.5, 1, 5, 10 }; * public static int[] cadenceMod_T = { 1, 10, 25, 50, 100 }; * public static int[] aspirationPlus_T = { 10, 50, 100, 500, 2000 }; * public static int[] aspirationPlusPlus_T = { 3, 5, 10, 15, 25 };*/ public MainWindow() { InitializeComponent(); windowInited = true; DrawX.SendData(mainGrid, clientsCount); DrawX.DrawMainStation(main_station); string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); try { new StreamReader(System.IO.Path.Combine(exePath, "plik1.txt")); } catch (FileNotFoundException e) { load_Button.IsEnabled = false; } }
private void Load_Button2_Click(object sender, RoutedEventArgs e) { start_Button.IsEnabled = true; save_Button.IsEnabled = true; OpenFileDialog okienko = new OpenFileDialog(); okienko.ShowDialog(); okienko.Filter = "|*.txt"; string bufor = okienko.FileName; if (!bufor.Equals("")) { using (StreamReader inputFile = new StreamReader(@bufor)) // capacity->(linia_i=4,druga liczba), main baza - linia 9. koordynaty - druga i trzecia liczba { int i = 0; clientsCount = 0; List <Point> clientsBuf = new List <Point>(); List <int> clientsOrdersBuf = new List <int>(); while (!inputFile.EndOfStream) { var lineA = inputFile.ReadLine(); var liniaTab = lineA.Split(' '); if (i == 4) { int ii = 0; for (int j = 0; j < liniaTab.Length; j++) { if (Int32.TryParse(liniaTab[j], out capacity)) { ii++; if (ii == 2) { cap_textBox.Dispatcher.Invoke(() => { cap_textBox.Text = capacity.ToString(); }); break; } } } } else if (i == 9) { int ii = 0, xbuf = -1, ybuf = -1; for (int j = 0; j < liniaTab.Length; j++) { if (Int32.TryParse(liniaTab[j], out ybuf)) { ii++; if (ii == 2) { xbuf = ybuf; } else if (ii == 3) { main_station = new Point(10 * xbuf, 10 * ybuf); DrawX.DrawMainStation(main_station); break; } } } } else if (i > 9) { int ii = 0, xbuf = -1, ybuf = -1; for (int j = 0; j < liniaTab.Length; j++) { if (Int32.TryParse(liniaTab[j], out ybuf)) { ii++; if (ii == 2) { xbuf = ybuf; } else if (ii == 3) { clientsBuf.Add(new Point(10 * xbuf, 10 * ybuf, i - 10)); } else if (ii == 4) { clientsOrdersBuf.Add(ybuf); break; } } } } i++; } if (debug) { Console.WriteLine(capacity + ", " + main_station.x + ", " + main_station.y); } if (debug) { Console.WriteLine(i); } clientsCount = clientsBuf.Count; DrawX.SendData(mainGrid, clientsCount); clients = new Point[clientsCount]; clientsOrders = new int[clientsCount]; for (int j = 0; j < clientsCount; j++) { if (debug) { Console.WriteLine(clientsBuf[j].x + ", " + clientsBuf[j].y + ", " + clientsOrdersBuf[j]); } clients[j] = clientsBuf[j]; clientsOrders[j] = clientsOrdersBuf[j]; } clientCount_textBox.Dispatcher.Invoke(() => { clientCount_textBox.Text = clientsCount.ToString(); }); DrawX.RemoveClients(); DrawX.DrawClients(clients); start_Button.IsEnabled = true; } } }