private int SelectFile(int index) { //if (!pm_inited) // InitService(); if (!pm_inited) { return(int.MinValue); } isloaded = false; selectfile_index = index; if (CheckSelectedFile()) { if (!pm.Load(ListOfProblem[index], ref M)) { return(int.MinValue); } if (M == -1) { isloaded = true; } return(M); } else { selectfile_index = -1; return(int.MinValue); } }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { //questa sotto è per debuggure e testare l'algoritmo con "test creati ad hoc" !!! //quindi lasciarla commentata a meno che non si deva testare casi particolari per algoritmo, il file è strutturato diversamente. //if (!pm.LoadTest(openFileDialog1.FileName)) int M = 0; if (!pm.Load(openFileDialog1.FileName, ref M)) { MessageBox.Show(openFileDialog1.FileName + " is not a valid P-Median file.", "Load Error!!!", MessageBoxButtons.OK, MessageBoxIcon.Stop); notifyIcon1.ShowBalloonTip(500, "P-Median Project", "File not loaded!", ToolTipIcon.Error); this.showMatrixCostToolStripMenuItem.Enabled = false; } else { if (M >= 0) { CPMedFormInsertionNumProblem ChooseMForm = new CPMedFormInsertionNumProblem(M); if (ChooseMForm.ShowDialog() == DialogResult.OK) { SolutionViewer.Nodes.Clear(); this.ClusterTextBox.Clear(); this.ClusterTextBox.AppendText("P-Median Project"); int m = ChooseMForm.M; if (!pm.Load(openFileDialog1.FileName, ref m, false)) { MessageBox.Show(openFileDialog1.FileName + " is not a valid P-Median file.", "Load Error!!!", MessageBoxButtons.OK, MessageBoxIcon.Stop); notifyIcon1.ShowBalloonTip(500, "P-Median Project", "File not loaded!", ToolTipIcon.Error); this.showMatrixCostToolStripMenuItem.Enabled = false; return; } else { this.Text = TitleForm + " - " + openFileDialog1.SafeFileName + " - m=" + m.ToString(); } } else { return; } } else { SolutionViewer.Nodes.Clear(); this.ClusterTextBox.Clear(); this.ClusterTextBox.AppendText("P-Median Project"); this.Text = TitleForm + " - " + openFileDialog1.SafeFileName; } computeToolStripMenuItem.Enabled = true; notifyIcon1.ShowBalloonTip(500, "P-Median Project", "File loaded.", ToolTipIcon.Info); this.showMatrixCostToolStripMenuItem.Enabled = true; } } }
static void EsempioMinimale() { String FileName = "Nome e Percorso del problema da elaborare"; PMed3 pmed; int m = 0; //per capacitated problem try { //Punto 1 pmed = new PMed3(Console.Write, 1); //Punto 2 if (pmed.Load(FileName, ref m)) { if (m == -1) //allora è di tipo uncapacitated (già caricato) { //.... //si può non fare niente oppure gestire cio che si deve gestire. // } else { //questo fase è necessaria perchè sono molto diversi i file come strutturazione. //invece che fare 2 metodi load, si è scelto di farne uno che a seconda di cosa ritorna //nel parametro reference m, fa capire di che tipo è il problema, //la seconda volta solo per i capacitated è da richiamare perchè la prima restituisce //quanti sono i problemi in esso contenuti, la seconda carica il problema scelto. int m_problem = 1; // dev'essere fra 1 e m. if (!pmed.Load(FileName, ref m_problem, false)) { Console.WriteLine("Impossibile caricare il file..."); return; } } //Fine Punto 2 //a questo punto ho il file caricato sia uncapacitated che capacitated //Punto 3 if (pmed.ComputeSolutions(true, true)) { //Punto 4 //gestione dati.... } else { Console.WriteLine("Erorre nella computazione..."); } } } catch (DllNotFoundException e) { Console.WriteLine("DLL NON TROVATA!!! \r\n{0}", e.Message); } }
private static bool LoadPmedProb(string filename, ref int m, bool return_m) { if (!pmed.Load(filename, ref m, return_m)) { return(false); } //if(return_m) // return true; //if (m == -1) //{ //uncap // return true; //} //else if(!pmed.Load(filename, ref m, return_m)) // return false; return(true); }
private static void TestPMedWrapper_Large() { //risolviamo il Pmed1.txt in large!!! 10.000 PMed3 pmed3; uint nsol = 2; try { pmed3 = new PMed3(Console.Write, nsol, "TestWrap", false, false); } catch (Exception e) { Console.WriteLine("exception: {0}", e.Message); Console.WriteLine("{0}", Directory.GetCurrentDirectory()); return; } //#if DEBUG int m = 0; if (!pmed3.Load(@"..\..\..\pmed1.txt", ref m)) { Console.WriteLine("ERROR LOAD FILE!!!"); return; } pmed3.ComputeSolutions(false, false); //pmed3.InitProblem(); //#endif //pmed3.InitProblem(); //pmed3.BuildSolutionFromWrapper(); Console.ReadKey(); pmed3.ShowWrapperSolution(Console.Write); pmed3.CheckWrapperClusterSolution(); }
private static void TestWrapperUncapacitated() { PMed3 pmed3; uint nsol = 1; int m = 0; try { pmed3 = new PMed3(Console.Write, nsol, "TestWrap", false, false); } catch (Exception e) { Console.WriteLine("exception: {0}", e.Message); Console.WriteLine("{0}", Directory.GetCurrentDirectory()); return; } if (!pmed3.Load(@"..\..\..\pmed4.txt", ref m, false)) { Console.WriteLine("ERROR LOAD FILE!!!"); return; } pmed3.ComputeSolutions(false, false); //pmed3.InitProblem(); //#endif //pmed3.InitProblem(); //pmed3.BuildSolutionFromWrapper(); //Console.ReadKey(); //pmed3.ShowWrapperSolution(Console.Write); pmed3.CheckWrapperClusterSolution(); }