private void RunAlgorithmButton_Click(object sender, EventArgs e) { Button button = RunAlgorithmButton; if (button.Tag == null || button.Tag.ToString() == "play") { ExecTimer.Start(); button.Image = Properties.Resources.pause; button.Tag = "pause"; } else if (button.Tag.ToString() == "pause") { ExecTimer.Stop(); button.Image = Properties.Resources.play; button.Tag = "play"; } else if (button.Tag.ToString() == "restart") { ExecTimer.Stop(); button.Image = Properties.Resources.play; StateBuffer.Seek(0, SeekOrigin.Begin); currentState = (State)fileFormat.Deserialize(StateBuffer); UpdateTable(); InputUpdate(); CurrentStepLabel.Text = $"Шаг: {currentState.Step}/{currentState.TotalSteps}"; HighlightCurrentStep(); button.Tag = "play"; CurrentStateLabel.Text = "Нажмите \"Запуск\", чтобы начать исполнение."; } }
public void LoadAppFile(string filename) { if (currentState == null) { try { using (FileStream fs = new FileStream(filename, FileMode.Open)) { BinaryFormatter format = new BinaryFormatter(); currentState = (State)format.Deserialize(fs); } } catch (Exception) { MessageBox.Show("Не удалось загрузить файл."); EmptyLaunch(); } } else { currentState.LoadFromFile(filename); } int step = currentState.Step; Predict(); StateBuffer.Seek(0, SeekOrigin.Begin); for (int i = 0; i < step; i++) { fileFormat.Deserialize(StateBuffer); } NextStep(); CurrentStateLabel.Text = "Нажмите \"Запуск\", чтобы начать исполнение."; }
private void JSONSaveDialog_Select(object sender, System.ComponentModel.CancelEventArgs e) { SaveFileDialog ofd = sender as SaveFileDialog; DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(List <State>)); List <State> states = new List <State>(); StateBuffer.Seek(0, SeekOrigin.Begin); for (int i = 0; i < currentState.TotalSteps + 1; i++) { State fullState = fileFormat.Deserialize(StateBuffer) as State; if (i != 0) { fullState.Instructions = null; fullState.StartData = null; } states.Add(fullState); } try { using (FileStream fs = new FileStream(ofd.FileName, FileMode.Create)) json.WriteObject(fs, states); } catch (Exception) { MessageBox.Show("Не удалось сохранить файл."); } }
private void NextStepButton_Click(object sender, EventArgs e) { StateBuffer.Seek(0, SeekOrigin.Begin); for (int i = 0; i < currentState.Step + 1; i++) { fileFormat.Deserialize(StateBuffer); } NextStep(); }