private void saveButton_Click(object sender, EventArgs e) { if (!isInputOk()) { //ControlStyle.MessageBoxStyle("Parameters are not valid."); ControlStyle.MessageBoxStyle("Οι παράμετροι δεν είναι σωστοί."); return; } string path = pathTextBox.Text; if (String.IsNullOrEmpty(path) || String.IsNullOrWhiteSpace(path) || !path.EndsWith(".txt") || !path.Contains("\\")) { ControlStyle.MessageBoxStyle("Η τοποθεσία(URI) του αρχείου δεν είναι έγκυρη"); return; } Parameters parameters = new Parameters(); parameters.Objective = ObjectiveRichTextBox.Text; parameters.ShowAll = showAllCheckBox.Checked; if (MaxRadioBtn.Checked == true) { parameters.Optimum = OptimizationGoal.Max; } if (MinRadioBtn.Checked == true) { parameters.Optimum = OptimizationGoal.Min; } if (MinAbsRadioBtn.Checked == true) { parameters.Optimum = OptimizationGoal.MinAbs; } parameters.MaxValues = new double[totalNotesControls]; parameters.MinValues = new double[totalNotesControls]; for (int i = 0; i < totalNotesControls; i++) { TextBox maxTextbox = (TextBox)this.Controls.Find("x" + (i + 1) + "MaxTextBox", true)[0]; parameters.MaxValues[i] = double.Parse(maxTextbox.Text, CultureInfo.InvariantCulture); TextBox minTextbox = (TextBox)this.Controls.Find("x" + (i + 1) + "MinTextBox", true)[0]; parameters.MinValues[i] = double.Parse(minTextbox.Text, CultureInfo.InvariantCulture); } parameters.NI = Int32.Parse(NITextBox.Text); parameters.HMS = Int32.Parse(HMSTextBox.Text); parameters.HMCR = Convert.ToDouble(HMCRTextBox.Text); parameters.PAR = Convert.ToDouble(PARTextBox.Text); parameters.BW = Convert.ToDouble(BWTextBox.Text); parameters.PARmin = Convert.ToDouble(PARMinTextBox.Text); parameters.PARmax = Convert.ToDouble(PARMaxTextBox.Text); parameters.BWmin = Convert.ToDouble(BWMinTextBox.Text); parameters.BWmax = Convert.ToDouble(BWMaxTextBox.Text); if (ClassicRadioButton.Checked == true) { parameters.Variant = HarmonySearchVariant.Classic; } if (ImprovedRadioButton.Checked == true) { parameters.Variant = HarmonySearchVariant.Improved; } if (GlobalRadioButton.Checked == true) { parameters.Variant = HarmonySearchVariant.GlobalBest; } if (AdaptiveRadioButton.Checked == true) { parameters.Variant = HarmonySearchVariant.SelfAdaptive; } string json = JsonConvert.SerializeObject(parameters); File.WriteAllText(@path, json); ControlStyle.MessageBoxSuccessStyle("Οι παράμετροι του αλγορίθμου αποθηκεύτηκαν επιτυχώς σε αρχείο."); }
private void loadButton_Click(object sender, EventArgs e) { Parameters parameters = new Parameters(); string path = pathTextBox.Text; if (String.IsNullOrEmpty(path) || String.IsNullOrWhiteSpace(path) || !path.EndsWith(".txt") || !path.Contains("\\")) { ControlStyle.MessageBoxStyle("Η τοποθεσία(URI) του αρχείου δεν είναι έγκυρη"); return; } using (StreamReader r = new StreamReader(path)) { string json = r.ReadToEnd(); parameters = JsonConvert.DeserializeObject <Parameters>(json); } ObjectiveRichTextBox.Text = parameters.Objective; if (parameters.Optimum == OptimizationGoal.Max) { MaxRadioBtn.Checked = true; } if (parameters.Optimum == OptimizationGoal.Min) { MinRadioBtn.Checked = true; } if (parameters.Optimum == OptimizationGoal.MinAbs) { MinAbsRadioBtn.Checked = true; } showAllCheckBox.Checked = parameters.ShowAll; checkDecisionVariables(); for (int j = 0; j < totalNotesControls; j++) { Controls.Find("x" + (j + 1) + "MinTextBox", true)[0].Text = parameters.MinValues[j].ToString(); Controls.Find("x" + (j + 1) + "MaxTextBox", true)[0].Text = parameters.MaxValues[j].ToString(); } NITextBox.Text = parameters.NI.ToString(); HMSTextBox.Text = parameters.HMS.ToString(); HMCRLabel.Text = parameters.HMCR.ToString(); PARTextBox.Text = parameters.PAR.ToString(); BWTextBox.Text = parameters.BW.ToString(); PARMinTextBox.Text = parameters.PARmin.ToString(); PARMaxTextBox.Text = parameters.PARmax.ToString(); BWMinTextBox.Text = parameters.PARmin.ToString(); BWMaxTextBox.Text = parameters.PARmax.ToString(); if (parameters.Variant == HarmonySearchVariant.Classic) { ClassicRadioButton.Checked = true; } if (parameters.Variant == HarmonySearchVariant.Improved) { ImprovedRadioButton.Checked = true; } if (parameters.Variant == HarmonySearchVariant.GlobalBest) { GlobalRadioButton.Checked = true; } if (parameters.Variant == HarmonySearchVariant.SelfAdaptive) { AdaptiveRadioButton.Checked = true; } ControlStyle.MessageBoxSuccessStyle("Οι παράμετροι του αλγορίθμου φορτώθηκαν επιτυχώς από το αρχείο."); }